code: public void getDataSinks(List<SinkPlanNode> sinks) {
  		final PlanNode in1 = this.input1.getSource();
  		final PlanNode in2 = this.input2.getSource();
  		
  		if (in1 instanceof SinkPlanNode) {
  			sinks.add((SinkPlanNode) in1);
  		} else if (in1 instanceof SinkJoinerPlanNode) {
  			((SinkJoinerPlanNode) in1).getDataSinks(sinks);
  		} else {
  			throw new CompilerException("Illegal child node for a sink joiner utility node: Neither Sink nor Sink Joiner");
  		}
  		
  		if (in2 instanceof SinkPlanNode) {
  			sinks.add((SinkPlanNode) in2);
  		} else if (in2 instanceof SinkJoinerPlanNode) {
  			((SinkJoinerPlanNode) in2).getDataSinks(sinks);
  		} else {
  			throw new CompilerException("Illegal child node for a sink joiner utility node: Neither Sink nor Sink Joiner");
  		}
  	}
docs: --------------------------------------------------------------------------------------------