private List<FieldDeclaration> prepareFields() { List<FieldDeclaration> fields = new ArrayList<FieldDeclaration>(); // shufles for (ShuffleModel.Segment segment : shuffle.getSegments()) { SimpleName shuffleName = names.create("shuffle"); shuffleNames.put(segment, shuffleName); Name shuffleTypeName = segment.getCompiled().getCombineOutputType().getQualifiedName(); fields.add( factory.newFieldDeclaration( null, new AttributeBuilder(factory).Private().toAttributes(), importer.toType(shuffleTypeName), shuffleName, null)); } // rendezvous for (ReduceUnit unit : reduceUnits) { if (unit.canCombine() == false) { continue; } Fragment first = unit.getFragments().get(0); SimpleName rendezvousName = names.create("combine"); rendezvousNames.put(first, rendezvousName); fields.add( factory.newFieldDeclaration( null, new AttributeBuilder(factory).Private().toAttributes(), importer.toType(first.getCompiled().getQualifiedName()), rendezvousName, null)); } return fields; }
private FieldDeclaration createSegmentIdField() { return factory.newFieldDeclaration( new JavadocBuilder(factory).text("セグメント番号。").toJavadoc(), new AttributeBuilder(factory).Public().toAttributes(), t(int.class), factory.newSimpleName(SEGMENT_ID_FIELD_NAME), v(-1)); }
private TypeBodyDeclaration createParserField() { return f.newFieldDeclaration( null, new AttributeBuilder(f).Private().Final().toAttributes(), context.resolve(RecordParser.class), createParserFieldName(), null); }
private FieldDeclaration createProperty(Segment segment) { assert segment != null; String name = createPropertyName(segment); DataClass target = segment.getTarget(); return factory.newFieldDeclaration( new JavadocBuilder(factory) .text( "{0}#{1}が利用するモデル ({2})。", segment.getPort().getOwner().getDescription().getName(), segment.getPort().getDescription().getName(), segment.getPortId()) .toJavadoc(), new AttributeBuilder(factory).Public().toAttributes(), t(target.getType()), factory.newSimpleName(name), target.createNewInstance(t(target.getType()))); }