/** * Add a new terminal node. * @param rule The rule. * @param context The build context. */ protected void addTerminalNode(IRule rule, BuildContext context) { // Create and connect the terminal node Map varinfos = context.getVarInfos(); Map extractors = new HashMap(); for(Iterator it=varinfos.keySet().iterator(); it.hasNext(); ) { Variable var = (Variable)it.next(); if(!var.isTemporary()) extractors.put(var.getName(), getLeftVariableExtractor(context, var)); } TerminalNode tnode = new TerminalNode(context.getRootNode().getNextNodeId(), rule, extractors); connectLeft(context.getLastBetaNode(), tnode, context); // Save the terminal node for later removal context.getRootNode().putTerminalNode(tnode); }
/** * Add a new terminal node. * @param rule The rule. * @param context The build context. */ protected void addTerminalNode(IRule rule, BuildContext context) { // Create and connect the terminal node Map varinfos = context.getVarInfos(); Map extractors = new HashMap(); for(Iterator it=varinfos.keySet().iterator(); it.hasNext(); ) { Variable var = (Variable)it.next(); if(!var.isTemporary()) extractors.put(var.getName(), getLeftVariableExtractor(context, var)); } TerminalNode tnode = new TerminalNode(context.getRootNode().getNextNodeId(), rule, extractors); connectLeft(context.getLastBetaNode(), tnode, context); // Save the terminal node for later removal context.getRootNode().putTerminalNode(tnode); }
/** * Add a new collect node. * @param eva The constraint evaluator. * @param context The build context. */ protected void addCollectNode(IConstraintEvaluator[] evas, int tuplecnt, BuildContext context) { INode node = new CollectNode(context.getRootNode().getNextNodeId(), tuplecnt, evas); connectLeft(context.getLastBetaNode(), node, context); context.setLastBetaNode(node); }
/** * Add a new collect node. * @param eva The constraint evaluator. * @param context The build context. */ protected void addCollectNode(IConstraintEvaluator[] evas, int tuplecnt, BuildContext context) { INode node = new CollectNode(context.getRootNode().getNextNodeId(), tuplecnt, evas); connectLeft(context.getLastBetaNode(), node, context); context.setLastBetaNode(node); }
/** * Add a new test node. * @param eva The constraint evaluator. * @param context The build context. */ protected void addTestNode(IConstraintEvaluator eva, BuildContext context) { INode node = new TestNode(context.getRootNode().getNextNodeId(), eva); connectLeft(context.getLastBetaNode(), node, context); context.setLastBetaNode(node); }
/** * Add a new test node. * @param eva The constraint evaluator. * @param context The build context. */ protected void addTestNode(IConstraintEvaluator eva, BuildContext context) { INode node = new TestNode(context.getRootNode().getNextNodeId(), eva); connectLeft(context.getLastBetaNode(), node, context); context.setLastBetaNode(node); }
ria = new RightInputAdapterNode(context.getRootNode().getNextNodeId()); ria.setTupleSource(tsource); tsource.addTupleConsumer(ria);
ria = new RightInputAdapterNode(context.getRootNode().getNextNodeId()); ria.setTupleSource(tsource); tsource.addTupleConsumer(ria);
/** * Add a new type node. * @param type The type node. * @param context the build context. */ protected void addTypeNode(OAVObjectType type, BuildContext context) { assert type!=null : "***" + context; // Create new type node, if necessary INode node = context.getRootNode().getTypeNode(type); if(node==null) { node = new TypeNode(context.getRootNode().getNextNodeId(), type); connectRight(context.getRootNode(), node, context); } context.setLastAlphaNode(node); }
/** * Add a new type node. * @param type The type node. * @param context the build context. */ protected void addTypeNode(OAVObjectType type, BuildContext context) { assert type!=null : "***" + context; // Create new type node, if necessary INode node = context.getRootNode().getTypeNode(type); if(node==null) { node = new TypeNode(context.getRootNode().getNextNodeId(), type); connectRight(context.getRootNode(), node, context); } context.setLastAlphaNode(node); }
node = new AlphaNode(context.getRootNode().getNextNodeId(), evas); connectRight(context.getLastAlphaNode(), node, context);
node = new AlphaNode(context.getRootNode().getNextNodeId(), evas); connectRight(context.getLastAlphaNode(), node, context);
/** * Add an initial fact node. * @param context The build context. */ protected void addInitialFactNode(BuildContext context) { // Todo: multiple initial fact nodes without sharing ? InitialFactNode node = context.getRootNode().getInitialFactNode(); if(node==null) { node = new InitialFactNode(context.getRootNode().getNextNodeId()); connectRight(context.getRootNode(), node, context); } // Update the context. context.setLastBetaNode(node); context.setTupleCount(1); }
/** * Add an initial fact node. * @param context The build context. */ protected void addInitialFactNode(BuildContext context) { // Todo: multiple initial fact nodes without sharing ? InitialFactNode node = context.getRootNode().getInitialFactNode(); if(node==null) { node = new InitialFactNode(context.getRootNode().getNextNodeId()); connectRight(context.getRootNode(), node, context); } // Update the context. context.setLastBetaNode(node); context.setTupleCount(1); }
lia = new LeftInputAdapterNode(context.getRootNode().getNextNodeId()); lia.setObjectSource(s); s.addObjectConsumer(lia);
lia = new LeftInputAdapterNode(context.getRootNode().getNextNodeId()); lia.setObjectSource(s); s.addObjectConsumer(lia);
node = new SplitNode(context.getRootNode().getNextNodeId(), createValueExtractor(-1, attr, -1, context, false), attr, binds); connectRight(context.getLastAlphaNode(), node, context);
node = new SplitNode(context.getRootNode().getNextNodeId(), createValueExtractor(-1, attr, -1, context, false), attr, binds); connectRight(context.getLastAlphaNode(), node, context);
node = new NotNode(context.getRootNode().getNextNodeId(), evas, ids); connectLeft(context.getLastBetaNode(), node, context); connectRight(context.getLastAlphaNode(), node, context);
node = new NotNode(context.getRootNode().getNextNodeId(), evas, ids); connectLeft(context.getLastBetaNode(), node, context); connectRight(context.getLastAlphaNode(), node, context);