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

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


            javadoc.param(param)
                .text(resource.getDescription().toString());
            parameters.add(factory.newFormalParameterDeclaration(
                    importer.toType(resource.getCompiled().getQualifiedName()),
                    param));
            statements.add(new ExpressionBuilder(factory, factory.newThis())
                .field(param)
                .assignFrom(param)
                .toStatement());
        }
        for (FlowElementOutput output : fragment.getOutputPorts()) {
            SimpleName chain = successors.get(output);
            assert chain != null;
            javadoc.param(chain)
                .code("{0}#{1}",
                        output.getOwner().getDescription().getName(),
                        output.getDescription().getName())
                .text("への出力");
            parameters.add(factory.newFormalParameterDeclaration(
                    importer.resolve(factory.newParameterizedType(
                            Models.toType(factory, Result.class),
                            Models.toType(factory, output.getDescription().getDataType()))),
                    chain));
            statements.add(new ExpressionBuilder(factory, factory.newThis())
                .field(chain)
                .assignFrom(chain)
                .toStatement());
        }
        return factory.newConstructorDeclaration(
View Full Code Here


        for (ResourceFragment key : fragment.getResources()) {
            SimpleName name = resources.get(key.getDescription());
            assert name != null;
            results.put(
                    key.getDescription(),
                    new ExpressionBuilder(factory, factory.newThis())
                        .field(name)
                        .toExpression());
        }
        return results;
    }
View Full Code Here

        for (FlowElementOutput key : fragment.getOutputPorts()) {
            SimpleName name = successors.get(key);
            assert name != null;
            results.put(
                    key.getDescription(),
                    new ExpressionBuilder(factory, factory.newThis())
                        .field(name)
                        .toExpression());
        }
        return results;
    }
View Full Code Here

        private MethodDeclaration createSlotSpec() {
            SimpleName valueName = factory.newSimpleName("value");
            SimpleName slotName = factory.newSimpleName("slot");
            List<Statement> statements = Lists.create();
            statements.add(new ExpressionBuilder(factory, slotName)
                .method(SortableSlot.NAME_BEGIN, Models.toLiteral(factory, slot.getSlotNumber()))
                .toStatement());
            if (slot.getSortProperties().isEmpty()) {
                statements.add(new ExpressionBuilder(factory, slotName)
                    .method(SortableSlot.NAME_ADD_RANDOM)
                    .toStatement());
            }
            for (DataClass.Property property : slot.getSortProperties()) {
                if (property.canNull()) {
                    statements.add(factory.newIfStatement(
                            property.createIsNull(valueName),
                            factory.newBlock(new Statement[] {
                                    new ExpressionBuilder(factory, slotName)
                                        .method(SortableSlot.NAME_ADD_BYTE, Models.toLiteral(factory, 1))
                                        .toStatement(),
                                    new ExpressionBuilder(factory, slotName)
                                        .method(SortableSlot.NAME_ADD_RANDOM)
                                        .toStatement(),
                            }),
                            factory.newBlock(new Statement[] {
                                    new ExpressionBuilder(factory, slotName)
                                        .method(SortableSlot.NAME_ADD_BYTE, Models.toLiteral(factory, 0))
                                        .toStatement(),
                                    new ExpressionBuilder(factory, slotName)
                                        .method(SortableSlot.NAME_ADD, property.createGetter(valueName))
                                        .toStatement(),
                            })));
                } else {
                    statements.add(new ExpressionBuilder(factory, slotName)
                        .method(SortableSlot.NAME_ADD, property.createGetter(valueName))
                        .toStatement());
                }
            }
            return factory.newMethodDeclaration(
View Full Code Here

        FlowElementPortDescription input = context.getInputPort(Summarize.ID_INPUT);
        FlowElementPortDescription output = context.getOutputPort(Summarize.ID_OUTPUT);

        Expression init = context.createField(boolean.class, "initialized");
        context.addBegin(new ExpressionBuilder(f, init)
            .assignFrom(Models.toLiteral(f, false))
            .toStatement());

        DataObjectMirror cache = context.createModelCache(output.getDataType());

        List<Statement> combine = Lists.create();
        DataClass outputType = getEnvironment().getDataClasses().load(output.getDataType());
        Summarized summarized = TypeUtil.erase(output.getDataType()).getAnnotation(Summarized.class);
        for (Summarized.Folding folding : summarized.term().foldings()) {
            if (folding.aggregator() == Aggregator.ANY) {
                continue;
            }
            combine.add(createAddSummarizeFor(context, folding, outputType, cache.get()));
        }
        context.addProcess(input, f.newIfStatement(
                init,
                f.newBlock(combine),
                f.newBlock(
                        cache.createSet(context.getProcessInput(input)),
                        new ExpressionBuilder(f, init)
                            .assignFrom(Models.toLiteral(f, true))
                            .toStatement())));

        ResultMirror result = context.getOutput(output);
        context.addEnd(result.createAdd(cache.get()));
View Full Code Here

        Expression input = context.getProcessInput(context.getInputPort(Summarize.ID_INPUT));
        ModelFactory f = context.getModelFactory();
        // TODO for only DMDL
        switch (folding.aggregator()) {
        case MAX:
            return new ExpressionBuilder(f, property.createGetter(outputCache))
                .method("max", property.createGetter(input))
                .toStatement();
        case MIN:
            return new ExpressionBuilder(f, property.createGetter(outputCache))
                .method("min", property.createGetter(input))
                .toStatement();
        case SUM:
        case COUNT:
            return new ExpressionBuilder(f, property.createGetter(outputCache))
                .method("add", property.createGetter(input))
                .toStatement();
        default:
            throw new AssertionError();
        }
View Full Code Here

     * @throws IllegalArgumentException 引数に{@code null}が指定された場合
     */
    public void addCopyStatement(Expression from, Expression to) {
        Precondition.checkMustNotBeNull(from, "from"); //$NON-NLS-1$
        Precondition.checkMustNotBeNull(to, "to"); //$NON-NLS-1$
        this.statements.add(new ExpressionBuilder(factory, to)
            .method("copyFrom", from)
            .toStatement());
    }
View Full Code Here

                        outputCache,
                        source.createGetter(context.getInput()));
            case MAX:
            case MIN:
            case SUM:
                return new ExpressionBuilder(f, destination.createGetter(outputCache))
                    .method("modify", new ExpressionBuilder(f, source.createGetter(context.getInput()))
                        .method("get")
                        .toExpression())
                    .toStatement();
            case COUNT:
                return new ExpressionBuilder(f, destination.createGetter(outputCache))
                    .method("modify", Models.toLiteral(f, 1L))
                    .toStatement();
            default:
                throw new AssertionError();
            }
View Full Code Here

    public static MethodDeclaration createCompareInts(
            ModelFactory factory) {
        SimpleName a = factory.newSimpleName("a");
        SimpleName b = factory.newSimpleName("b");
        Statement statement = factory.newIfStatement(
                new ExpressionBuilder(factory, a)
                    .apply(InfixOperator.EQUALS, b)
                    .toExpression(),
                new ExpressionBuilder(factory, Models.toLiteral(factory, 0))
                    .toReturnStatement(),
                factory.newIfStatement(
                        new ExpressionBuilder(factory, a)
                            .apply(InfixOperator.LESS, b)
                            .toExpression(),
                        new ExpressionBuilder(factory, Models.toLiteral(factory, -1))
                            .toReturnStatement(),
                        new ExpressionBuilder(factory, Models.toLiteral(factory, +1))
                            .toReturnStatement()));
        return factory.newMethodDeclaration(
                null,
                new AttributeBuilder(factory)
                    .Private()
View Full Code Here

        assert context != null;
        List<Statement> results = Lists.create();
        for (Map.Entry<ResourceFragment, SimpleName> entry : resources.entrySet()) {
            ResourceFragment resource = entry.getKey();
            SimpleName field = entry.getValue();
            results.add(new ExpressionBuilder(factory, factory.newThis())
                .field(field)
                .assignFrom(new TypeBuilder(factory, importer.toType(resource.getCompiled().getQualifiedName()))
                    .newObject()
                    .toExpression())
                .toStatement());
            results.add(new ExpressionBuilder(factory, factory.newThis())
                .field(field)
                .method("setup", new ExpressionBuilder(factory, context)
                    .method("getConfiguration")
                    .toExpression())
                .toStatement());
        }
        return results;
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.