/** * 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); }
if(!getRelevantAttributes().contains(type)) return; Tuple indextuple = createIndexTuple(state, left, mem); CollectMemory nodemem = (CollectMemory)mem.getNodeMemory(this); Tuple resulttuple = nodemem.getWorkingTuple(indextuple); boolean affected = isAffected(type); boolean check = checkConstraints(resulttuple, state); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda); propagateAdditionToTupleConsumers(resulttuple, state, mem, agenda); propagateModificationToTupleConsumers(resulttuple, type, oldvalue, newvalue, state, mem, agenda); if(contains) propagateModificationToTupleConsumers(resulttuple, type, oldvalue, newvalue, state, mem, agenda);
state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); Tuple indextuple = createIndexTuple(state, left, mem); CollectMemory nodemem = (CollectMemory)mem.getNodeMemory(this); Tuple resulttuple = nodemem.getWorkingTuple(indextuple); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda); if(checkConstraints(resulttuple, state)) propagateAdditionToTupleConsumers(resulttuple, state, mem, agenda); propagateModificationToTupleConsumers(resulttuple, null, null, resulttuple, state, mem, agenda); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda);
ret.put("Tuple index:", Integer.valueOf(n.getTupleIndex())); IConstraintEvaluator[] evas = n.getConstraintEvaluators(); for(int i=0; evas!=null && i<evas.length; i++)
state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); Tuple indextuple = createIndexTuple(state, left, mem); CollectMemory nodemem = (CollectMemory)mem.getNodeMemory(this); Tuple resulttuple = nodemem.getWorkingTuple(indextuple); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda); if(checkConstraints(resulttuple, state)) propagateAdditionToTupleConsumers(resulttuple, state, mem, agenda); propagateModificationToTupleConsumers(resulttuple, null, null, resulttuple, state, mem, agenda); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda);
state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); Tuple indextuple = createIndexTuple(state, left, mem); CollectMemory nodemem = (CollectMemory)mem.getNodeMemory(this); if(checkConstraints(resulttuple, state)) propagateAdditionToTupleConsumers(resulttuple, state, mem, agenda); propagateModificationToTupleConsumers(resulttuple, null, null, resulttuple, state, mem, agenda); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda);
if(!getRelevantAttributes().contains(type)) return; Tuple indextuple = createIndexTuple(state, left, mem); CollectMemory nodemem = (CollectMemory)mem.getNodeMemory(this); Tuple resulttuple = nodemem.getWorkingTuple(indextuple); boolean affected = isAffected(type); boolean check = checkConstraints(resulttuple, state); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda); propagateAdditionToTupleConsumers(resulttuple, state, mem, agenda); propagateModificationToTupleConsumers(resulttuple, type, oldvalue, newvalue, state, mem, agenda); if(contains) propagateModificationToTupleConsumers(resulttuple, type, oldvalue, newvalue, state, mem, agenda);
/** * 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); }
state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); Tuple indextuple = createIndexTuple(state, left, mem); CollectMemory nodemem = (CollectMemory)mem.getNodeMemory(this); if(checkConstraints(resulttuple, state)) propagateAdditionToTupleConsumers(resulttuple, state, mem, agenda); propagateModificationToTupleConsumers(resulttuple, null, null, resulttuple, state, mem, agenda); propagateRemovalToTupleConsumers(resulttuple, state, mem, agenda);