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); }
T schema = createEmptySchema(); sn.postPassHelper = schema; getSinkSchema(sn, schema); propagateToChannel(schema, inchannel, createUtilities); ((SourcePlanNode) node).setSerializer(createSerializer(parentSchema, node)); schema = createEmptySchema(); iterationNode.postPassHelper = schema; } else { addSchemaToSchema(parentSchema, schema, iterationNode.getProgramOperator().getName()); traverse(addMapper.getInput().getSource(), createEmptySchema(), false); try { addMapper.getInput().setSerializer(createSerializer(createEmptySchema())); } catch (MissingFieldTypeInfoException e) { throw new RuntimeException(e); traverse(iterationNode.getRootOfStepFunction(), schema, false); traverse(iterationNode.getRootOfStepFunction(), pss, createUtilities); traverse(addMapper.getInput().getSource(), createEmptySchema(), createUtilities); try { addMapper.getInput().setSerializer(createSerializer(createEmptySchema())); } catch (MissingFieldTypeInfoException e) {
private TypeSerializerFactory<?> createSerializer(T schema, PlanNode node) { try { return createSerializer(schema); } catch (MissingFieldTypeInfoException e) { throw new CompilerPostPassException("Missing type information while creating serializer for '" + node.getProgramOperator().getName() + "'."); } }