Beispiel #1
0
    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())));
 }