private MethodDeclaration createSetter(Segment segment) { assert segment != null; String methodName = Naming.getShuffleValueSetter(segment.getPortId()); DataClass type = segment.getTarget(); SimpleName argument = factory.newSimpleName("model"); // $NON-NLS-1$ List<Statement> statements = Lists.create(); statements.add( new ExpressionBuilder(factory, factory.newThis()) .field(factory.newSimpleName(SEGMENT_ID_FIELD_NAME)) .assignFrom(v(segment.getPortId())) .toStatement()); statements.add( type.assign( new ExpressionBuilder(factory, factory.newThis()) .field(createPropertyName(segment)) .toExpression(), argument)); return factory.newMethodDeclaration( new JavadocBuilder(factory) .text( "Sets a data model object for " //$NON-NLS-1$ + "the successing operator input <code>{0}#{1}</code>.", //$NON-NLS-1$ segment.getPort().getOwner().getDescription().getName(), segment.getPort().getDescription().getName()) .param(argument) .text("the target data model object") // $NON-NLS-1$ .toJavadoc(), new AttributeBuilder(factory).Public().toAttributes(), t(void.class), factory.newSimpleName(methodName), Collections.singletonList( factory.newFormalParameterDeclaration(t(type.getType()), argument)), statements); }
private MethodDeclaration createSetter(Segment segment) { assert segment != null; String methodName = Naming.getShuffleValueSetter(segment.getPortId()); DataClass type = segment.getTarget(); SimpleName argument = factory.newSimpleName("model"); List<Statement> statements = new ArrayList<Statement>(); statements.add( new ExpressionBuilder(factory, factory.newThis()) .field(factory.newSimpleName(SEGMENT_ID_FIELD_NAME)) .assignFrom(v(segment.getPortId())) .toStatement()); statements.add( type.assign( new ExpressionBuilder(factory, factory.newThis()) .field(createPropertyName(segment)) .toExpression(), argument)); return factory.newMethodDeclaration( new JavadocBuilder(factory) .text( "{0}#{1}で使用するモデルオブジェクトを設定する。", segment.getPort().getOwner().getDescription().getName(), segment.getPort().getDescription().getName()) .param(argument) .text("設定するモデルオブジェクト") .toJavadoc(), new AttributeBuilder(factory).Public().toAttributes(), t(void.class), factory.newSimpleName(methodName), Collections.singletonList( factory.newFormalParameterDeclaration(t(type.getType()), argument)), statements); }