Package com.asakusafw.utils.java.model.util

Examples of com.asakusafw.utils.java.model.util.ExpressionBuilder


        }

        context.add(f.newIfStatement(
                helper.getHasMasterExpresion(),
                f.newBlock(new Statement[] {
                        new ExpressionBuilder(f, impl)
                            .method(desc.getDeclaration().getName(), arguments)
                            .toStatement(),
                        updated.createAdd(context.getInput())
                }),
                f.newBlock(missed.createAdd(context.getInput()))));
View Full Code Here


                    factory.newSimpleName(SEGMENT_ID_FIELD_NAME),
                    v(-1));
        }

        private TypeBodyDeclaration createSegmentIdGetter() {
            Statement body = new ExpressionBuilder(factory, factory.newThis())
                .field(SEGMENT_ID_FIELD_NAME)
                .toReturnStatement();
            return factory.newMethodDeclaration(
                    null,
                    new AttributeBuilder(factory)
View Full Code Here

            assert segment != null;
            String methodName = Naming.getShuffleValueGetter(segment.getPortId());

            List<Statement> statements = Lists.create();
            statements.add(factory.newIfStatement(
                    new ExpressionBuilder(factory, factory.newThis())
                        .field(SEGMENT_ID_FIELD_NAME)
                        .apply(InfixOperator.NOT_EQUALS, v(segment.getPortId()))
                        .toExpression(),
                    new TypeBuilder(factory, t(AssertionError.class))
                        .newObject()
                        .toThrowStatement(),
                    null));

            statements.add(new ExpressionBuilder(factory, factory.newThis())
                .field(createPropertyName(segment))
                .toReturnStatement());

            return factory.newMethodDeclaration(
                    new JavadocBuilder(factory)
View Full Code Here

            DataClass type = segment.getTarget();

            SimpleName argument = factory.newSimpleName("model");

            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(
View Full Code Here

        }

        private MethodDeclaration createWriteMethod() {
            SimpleName out = factory.newSimpleName("out");

            Expression segmentId = new ExpressionBuilder(factory, factory.newThis())
                .field(SEGMENT_ID_FIELD_NAME)
                .toExpression();

            List<Statement> cases = Lists.create();
            for (Segment segment : model.getSegments()) {
                cases.add(factory.newSwitchCaseLabel(v(segment.getPortId())));
                cases.add(new ExpressionBuilder(factory, out)
                    .method("writeInt", v(segment.getPortId()))
                    .toStatement());
                String fieldName = createPropertyName(segment);
                cases.add(segment.getTarget().createWriter(
                        new ExpressionBuilder(factory, factory.newThis())
                            .field(fieldName)
                            .toExpression(),
                        out));
                cases.add(factory.newBreakStatement());
            }
View Full Code Here

        }

        private MethodDeclaration createReadFieldsMethod() {
            SimpleName in = factory.newSimpleName("in");

            Expression segmentId = new ExpressionBuilder(factory, factory.newThis())
                .field(SEGMENT_ID_FIELD_NAME)
                .toExpression();

            List<Statement> statements = Lists.create();
            statements.add(new ExpressionBuilder(factory, segmentId)
                .assignFrom(new ExpressionBuilder(factory, in)
                    .method("readInt")
                    .toExpression())
                .toStatement());

            List<Statement> cases = Lists.create();
            for (Segment segment : model.getSegments()) {
                cases.add(factory.newSwitchCaseLabel(v(segment.getPortId())));
                String fieldName = createPropertyName(segment);
                cases.add(segment.getTarget().createReader(
                        new ExpressionBuilder(factory, factory.newThis())
                            .field(fieldName)
                            .toExpression(),
                        in));
                cases.add(factory.newBreakStatement());
            }
View Full Code Here

                factory.newSimpleName("as"),
                Collections.singletonList(factory.newFormalParameterDeclaration(
                        util.t(String.class),
                        newName)),
                Arrays.asList(new Statement[] {
                        new ExpressionBuilder(factory, factory.newThis())
                            .field(RESOLVER_FIELD_NAME)
                            .method("setName", newName)
                            .toStatement(),
                        new ExpressionBuilder(factory, factory.newThis())
                            .toReturnStatement(),
                }));
    }
View Full Code Here

                factory.newSimpleName("inlined"),
                Collections.singletonList(factory.newFormalParameterDeclaration(
                        util.t(boolean.class),
                        optimize)),
                Arrays.asList(new Statement[] {
                        new ExpressionBuilder(factory, factory.newThis())
                            .field(RESOLVER_FIELD_NAME)
                            .method("getElement")
                            .method("override", factory.newConditionalExpression(
                                    optimize,
                                    new TypeBuilder(factory, util.t(Inline.class))
                                        .field(Inline.FORCE_AGGREGATE.name())
                                        .toExpression(),
                                    new TypeBuilder(factory, util.t(Inline.class))
                                        .field(Inline.KEEP_SEGREGATED.name())
                                        .toExpression()))
                            .toStatement(),
                        new ExpressionBuilder(factory, factory.newThis())
                            .toReturnStatement(),
                }));
    }
View Full Code Here

                + flowClass.getOutputPorts().size()
                + flowClass.getParameters().size()
                ];
        for (OperatorPortDeclaration var : flowClass.getInputPorts()) {
            SimpleName name = names.create(var.getName());
            statements.add(new ExpressionBuilder(factory, builderName)
                .method("addInput",
                        util.v(var.getName()),
                        factory.newSimpleName(var.getType().getReference()))
                .toLocalVariableDeclaration(
                        util.toInType(var.getType().getRepresentation()),
                        name));
            arguments[var.getParameterPosition()] = name;
        }
        for (OperatorPortDeclaration var : flowClass.getOutputPorts()) {
            SimpleName name = names.create(var.getName());
            Expression type = toExpression(var);
            assert type != null;
            statements.add(new ExpressionBuilder(factory, builderName)
                .method("addOutput", util.v(var.getName()), type)
                .toLocalVariableDeclaration(
                        util.toOutType(var.getType().getRepresentation()),
                        name));
            arguments[var.getParameterPosition()] = name;
        }
        for (OperatorPortDeclaration var : flowClass.getParameters()) {
            Expression type = toExpression(var);
            SimpleName name = factory.newSimpleName(var.getName());
            statements.add(new ExpressionBuilder(factory, builderName)
                .method("addParameter",
                    util.v(var.getName()),
                    type,
                    name)
                .toStatement());
            arguments[var.getParameterPosition()] = name;
        }
        SimpleName descName = names.create("desc");
        statements.add(new TypeBuilder(factory, getType(util.t(flowClass.getElement())))
            .newObject(arguments)
            .toLocalVariableDeclaration(util.t(FlowDescription.class), descName));

        Expression resolver = new ExpressionBuilder(factory, factory.newThis())
            .field(RESOLVER_FIELD_NAME)
            .toExpression();
        statements.add(new ExpressionBuilder(factory, resolver)
            .assignFrom(new ExpressionBuilder(factory, builderName)
                .method("toResolver", descName)
                .toExpression())
            .toStatement());
        for (OperatorPortDeclaration var : flowClass.getInputPorts()) {
            statements.add(new ExpressionBuilder(factory, resolver)
                .method("resolveInput",
                        util.v(var.getName()),
                        factory.newSimpleName(var.getName()))
                .toStatement());
        }
        for (OperatorPortDeclaration var : flowClass.getOutputPorts()) {
            statements.add(new ExpressionBuilder(factory, factory.newThis())
                .field(var.getName())
                .assignFrom(new ExpressionBuilder(factory, resolver)
                    .method("resolveOutput", util.v(var.getName()))
                    .toExpression())
                .toStatement());
        }
        return statements;
View Full Code Here

         * @return 生成した文
         * @throws IllegalArgumentException 引数に{@code null}が指定された場合
         */
        public Statement createAdd(Expression value) {
            Precondition.checkMustNotBeNull(value, "value"); //$NON-NLS-1$
            return new ExpressionBuilder(factory, object)
                .method(RESULT_METHOD_NAME, value)
                .toStatement();
        }
View Full Code Here

TOP

Related Classes of com.asakusafw.utils.java.model.util.ExpressionBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.