@Override public void postPass(OptimizedPlan plan) { for (SinkPlanNode sink : plan.getDataSinks()) { traverse(sink, null, true); } }
private void propagateToChannel(T schema, Channel channel, boolean createUtilities) throws MissingFieldTypeInfoException { if (createUtilities) { // the serializer always exists channel.setSerializer(createSerializer(schema)); // parameterize the ship strategy if (channel.getShipStrategy().requiresComparator()) { channel.setShipStrategyComparator( createComparator(channel.getShipStrategyKeys(), channel.getShipStrategySortOrder(), schema)); } // parameterize the local strategy if (channel.getLocalStrategy().requiresComparator()) { channel.setLocalStrategyComparator( createComparator(channel.getLocalStrategyKeys(), channel.getLocalStrategySortOrder(), schema)); } } // propagate the channel's source model traverse(channel.getSource(), schema, createUtilities); }
traverse(addMapper.getInput().getSource(), createEmptySchema(), false); try { addMapper.getInput().setSerializer(createSerializer(createEmptySchema())); traverse(iterationNode.getRootOfStepFunction(), schema, false); traverse(iterationNode.getRootOfStepFunction(), pss, createUtilities); traverse(addMapper.getInput().getSource(), createEmptySchema(), createUtilities); try { addMapper.getInput().setSerializer(createSerializer(createEmptySchema())); traverse(iterationNode.getNextWorkSetPlanNode(), createEmptySchema(), false); traverse(iterationNode.getSolutionSetDeltaPlanNode(), schema, false); traverse(iterationNode.getNextWorkSetPlanNode(), wss, createUtilities); traverse(iterationNode.getSolutionSetDeltaPlanNode(), sss, createUtilities);