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() + "'."); } }
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); }
((SourcePlanNode) node).setSerializer(createSerializer(parentSchema, node)); traverse(addMapper.getInput().getSource(), createEmptySchema(), false); try { addMapper.getInput().setSerializer(createSerializer(createEmptySchema())); } catch (MissingFieldTypeInfoException e) { throw new RuntimeException(e); traverse(addMapper.getInput().getSource(), createEmptySchema(), createUtilities); try { addMapper.getInput().setSerializer(createSerializer(createEmptySchema())); } catch (MissingFieldTypeInfoException e) { throw new RuntimeException(e); iterationNode.setSerializerForIterationChannel(createSerializer(pss, iterationNode.getPartialSolutionPlanNode())); iterationNode.setWorksetSerializer(createSerializer(wss, iterationNode.getWorksetPlanNode())); iterationNode.setSolutionSetSerializer(createSerializer(sss, iterationNode.getSolutionSetPlanNode())); try { iterationNode.setSolutionSetComparator(createComparator(optNode.getSolutionSetKeyFields(), null, sss));