Package com.asakusafw.compiler.flow.stage.StageModel

Examples of com.asakusafw.compiler.flow.stage.StageModel.Factor


        }

        private List<MethodDeclaration> emit(SimpleName argument) {
            assert argument != null;
            assert fragment.getFactors().size() == 1;
            Factor factor = fragment.getFactors().get(0);

            FlowElementProcessor proc = factor.getProcessor();
            assert proc.getKind() == Kind.RENDEZVOUS;
            RendezvousProcessor processor = (RendezvousProcessor) proc;
            LOG.debug("{}に{}を適用しています", factor, processor);

            RendezvousProcessor.Context context = createConext(factor, argument);
View Full Code Here


        assert startElements != null;
        FlowElement current = element;
        List<Factor> factors = Lists.create();
        List<ResourceFragment> resources = Lists.create();
        while (true) {
            Factor factor = getFactor(current);
            if (factor == null) {
                break;
            }
            factors.add(factor);
            resources.addAll(getResources(current));
            if (factor.isLineEnd()) {
                break;
            }
            Set<FlowElement> successors = FlowGraphUtil.getSuccessors(current);
            if (successors.size() != 1) {
                break;
View Full Code Here

    private Factor getFactor(FlowElement element) {
        assert element != null;
        FlowElementProcessor.Repository repo = environment.getProcessors();
        FlowElementDescription description = element.getDescription();
        if (description.getKind() == FlowElementKind.PSEUD) {
            return new Factor(element, repo.getEmptyProcessor());
        }
        FlowElementProcessor processor = repo.findProcessor(description);
        if (processor == null) {
            error("{0}に対するプロセッサが見つかりません", description);
            return new Factor(element, repo.getEmptyProcessor());
        }
        return new Factor(element, processor);
    }
View Full Code Here

            List<Statement> results = Lists.create();
            boolean end = false;
            Expression input = argument;
            Iterator<Factor> factors = fragment.getFactors().iterator();
            while (factors.hasNext()) {
                Factor factor = factors.next();
                if (factor.isLineEnd()) {
                    assert factors.hasNext() == false;
                    emitEnd(results, factor, input);
                    end = true;
                } else {
                    input = emitPart(results, factor, input);
View Full Code Here

        assertThat(fragment.isRendezvous(), is(false));
        assertThat(fragment.getInputPorts().size(), is(1));
        assertThat(fragment.getOutputPorts().size(), is(1));
        assertThat(fragment.getFactors().size(), is(1));

        Factor factor = fragment.getFactors().get(0);
        assertThat(factor.getElement().getDescription(), instanceOf(OperatorDescription.class));
        OperatorDescription op = (OperatorDescription) factor.getElement().getDescription();
        assertThat(op.getDeclaration().getDeclaring(), is((Object) ExOperator.class));
    }
View Full Code Here

        assertThat(fragment.isRendezvous(), is(true));
        assertThat(fragment.getInputPorts().size(), is(1));
        assertThat(fragment.getOutputPorts().size(), is(1));
        assertThat(fragment.getFactors().size(), is(1));

        Factor factor = fragment.getFactors().get(0);
        assertThat(factor.getElement().getDescription(), instanceOf(OperatorDescription.class));
        OperatorDescription op = (OperatorDescription) factor.getElement().getDescription();
        assertThat(op.getDeclaration().getDeclaring(), is((Object) ExOperator.class));
    }
View Full Code Here

TOP

Related Classes of com.asakusafw.compiler.flow.stage.StageModel.Factor

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.