Package com.asakusafw.compiler.flow.stage.ShuffleModel

Examples of com.asakusafw.compiler.flow.stage.ShuffleModel.Segment


        private MethodDeclaration createProcess(SimpleName value) {
            assert value != null;
            List<Statement> cases = Lists.create();
            for (FlowElementInput input : fragment.getInputPorts()) {
                Segment segment = shuffle.findSegment(input);
                cases.add(factory.newSwitchCaseLabel(
                        Models.toLiteral(factory, segment.getPortId())));
                Expression model = new ExpressionBuilder(factory, value)
                    .method(Naming.getShuffleValueGetter(segment.getPortId()))
                    .toExpression();
                cases.add(new ExpressionBuilder(factory, factory.newThis())
                    .method(getMethodName(PROCESS_PREFIX, segment), model)
                    .toStatement());
                cases.add(factory.newBreakStatement());
View Full Code Here


            extraFields.addAll(context.getGeneratedFields());
            List<MethodDeclaration> results = Lists.create();
            results.add(createBegin(context.getBeginStatements()));
            results.add(createEnd(context.getEndStatements()));
            for (FlowElementInput input : fragment.getInputPorts()) {
                Segment segment = shuffle.findSegment(input);
                MethodDeclaration port = createPort(
                        PROCESS_PREFIX,
                        segment,
                        argument,
                        context.getProcessStatements(input.getDescription()));
View Full Code Here

            List<Statement> cases = Lists.create();
            for (List<Segment> segments : ShuffleEmiterUtil.groupByElement(model)) {
                for (Segment segment : segments) {
                    cases.add(factory.newSwitchCaseLabel(v(segment.getPortId())));
                }
                Segment segment = segments.get(0);
                for (Term term : segment.getTerms()) {
                    if (term.getArrangement() != Arrangement.GROUPING) {
                        continue;
                    }
                    String name = ShuffleEmiterUtil.getPropertyName(segment, term);
                    Expression rhs = term.getSource().createValueDiff(
View Full Code Here

            for (Map.Entry<Fragment, SimpleName> entry : rendezvousNames.entrySet()) {
                Fragment fragment = entry.getKey();
                Type rendezvousType = importer.toType(fragment.getCompiled().getQualifiedName());
                List<Expression> arguments = Lists.create();
                for (FlowElementInput input : fragment.getInputPorts()) {
                    Segment segment = segments.get(input);
                    assert segment != null;
                    SimpleName shuffleName = shuffleNames.get(segment);
                    assert shuffleName != null;
                    arguments.add(new ExpressionBuilder(factory, factory.newThis())
                        .field(shuffleName)
View Full Code Here

        MockResult<ExSummarized> result = mapper.create("out");

        @SuppressWarnings("unchecked")
        Rendezvous<Writable> f = (Rendezvous<Writable>) create(loader, name, mapper.toArguments());

        Segment segment = stage.getShuffleModel().findSegment(fragment.getInputPorts().get(0));
        SegmentedWritable value = createShuffleValue(loader, stage);

        ExSummarized ex1 = new ExSummarized();
        ex1.setCount(1);
        f.begin();
View Full Code Here

            List<Statement> cases = Lists.create();
            for (List<Segment> segments : ShuffleEmiterUtil.groupByElement(model)) {
                for (Segment segment : segments) {
                    cases.add(factory.newSwitchCaseLabel(v(segment.getPortId())));
                }
                Segment segment = segments.get(0);
                for (Term term : segment.getTerms()) {
                    if (term.getArrangement() != Arrangement.GROUPING) {
                        continue;
                    }
                    String name = ShuffleEmiterUtil.getPropertyName(segment, term);
                    Expression rhs = term.getSource().createValueDiff(
                            new ExpressionBuilder(factory, o1)
                                .field(name)
                                .toExpression(),
                            new ExpressionBuilder(factory, o2)
                                .field(name)
                                .toExpression());
                    cases.add(new ExpressionBuilder(factory, diff)
                        .assignFrom(rhs)
                        .toStatement());
                    cases.add(createDiff(diff));
                }
                cases.add(factory.newBreakStatement());
            }
            cases.add(factory.newSwitchDefaultLabel());
            cases.add(createAssertionError());

            statements.add(factory.newSwitchStatement(segmentId1, cases));

            statements.add(new ExpressionBuilder(factory, diff)
                .assignFrom(new ExpressionBuilder(factory, factory.newThis())
                    .method(ShuffleEmiterUtil.COMPARE_INT,
                            segmentId1,
                            segmentId2)
                    .toExpression())
                .toStatement());
            statements.add(createDiff(diff));

            cases = Lists.create();
            for (Segment segment : model.getSegments()) {
                cases.add(factory.newSwitchCaseLabel(v(segment.getPortId())));
                for (Term term : segment.getTerms()) {
                    if (term.getArrangement() == Arrangement.GROUPING) {
                        continue;
                    }
                    String name = ShuffleEmiterUtil.getPropertyName(segment, term);
                    Expression rhs = term.getSource().createValueDiff(
View Full Code Here

        }

        private List<FieldDeclaration> createProperties() {
            List<FieldDeclaration> results = Lists.create();
            for (List<Segment> segments : ShuffleEmiterUtil.groupByElement(model)) {
                Segment first = segments.get(0);
                for (Term term : first.getTerms()) {
                    if (term.getArrangement() != Arrangement.GROUPING) {
                        continue;
                    }
                    results.add(createProperty(first, term));
                }
View Full Code Here

            List<Statement> cases = Lists.create();
            for (List<Segment> segments : ShuffleEmiterUtil.groupByElement(model)) {
                for (Segment segment : segments) {
                    cases.add(factory.newSwitchCaseLabel(v(segment.getPortId())));
                }
                Segment segment = segments.get(0);
                for (Term term : segment.getTerms()) {
                    if (term.getArrangement() != Arrangement.GROUPING) {
                        continue;
                    }
                    String name = ShuffleEmiterUtil.getPropertyName(segment, term);
                    cases.add(term.getSource().assign(
View Full Code Here

        SegmentedWritable k2 = (SegmentedWritable) create(loader, key);

        List<Segment> segments = analyzed.getSegments();
        assertThat(segments.size(), is(2));

        Segment seg1 = segments.get(0);
        Segment seg2 = segments.get(1);
        assertThat(seg1.getTerms().size(), is(2));
        assertThat(seg2.getTerms().size(), is(2));

        Ex1 ex1 = new Ex1();
        ex1.setSid(10);
        ex1.setValue(100);
        ex1.setStringAsString("ex1");
View Full Code Here

        MockResult<Ex1> result = mapper.create("r1");

        @SuppressWarnings("unchecked")
        Rendezvous<Writable> f = (Rendezvous<Writable>) create(loader, name, mapper.toArguments());

        Segment segment = stage.getShuffleModel().findSegment(fragment.getInputPorts().get(0));
        SegmentedWritable value = createShuffleValue(loader, stage);

        Ex1 ex1 = new Ex1();
        ex1.setStringAsString("string");
View Full Code Here

TOP

Related Classes of com.asakusafw.compiler.flow.stage.ShuffleModel.Segment

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.