/** * 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); }
state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEMODIFIED); if(getRelevantAttributes().contains(type)) boolean affected = isAffected(type); boolean contains = mem.hasNodeMemory(this) && ((Collection)mem.getNodeMemory(this)).contains(tuple); propagateRemovalToTupleConsumers(tuple, state, mem, agenda); propagateAdditionToTupleConsumers(tuple, state, mem, agenda); propagateModificationToTupleConsumers(tuple, tupleindex, type, oldvalue, newvalue, state, mem, agenda); propagateModificationToTupleConsumers(tuple, tupleindex, type, oldvalue, newvalue, state, mem, agenda);
ret.put("Evaluator:", n.getConstraintEvaluator());
/** * Add a new tuple to this node. * @param tuple The tuple. */ public void addTuple(Tuple tuple, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { //System.out.println("Add tuple called: "+this+" "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); Collection tmem = (Collection)mem.getNodeMemory(this); if(!tmem.contains(tuple) && evaluator.evaluate(null, tuple, state)) { tmem.add(tuple); //System.out.println("Tuple passed constraint check: "+this+" "+object); propagateAdditionToTupleConsumers(tuple, state, mem, agenda); } state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
/** * Remove a tuple from this node. * @param tuple The tuple. */ public void removeTuple(Tuple tuple, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { //System.out.println("Remove tuple called: "+this+" "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); if(mem.hasNodeMemory(this)) { if(((Collection)mem.getNodeMemory(this)).remove(tuple)) { propagateRemovalToTupleConsumers(tuple, state, mem, agenda); } } state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
/** * Add a new tuple to this node. * @param tuple The tuple. */ public void addTuple(Tuple tuple, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { //System.out.println("Add tuple called: "+this+" "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); Collection tmem = (Collection)mem.getNodeMemory(this); if(!tmem.contains(tuple) && evaluator.evaluate(null, tuple, state)) { tmem.add(tuple); //System.out.println("Tuple passed constraint check: "+this+" "+object); propagateAdditionToTupleConsumers(tuple, state, mem, agenda); } state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
/** * Remove a tuple from this node. * @param tuple The tuple. */ public void removeTuple(Tuple tuple, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { //System.out.println("Remove tuple called: "+this+" "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); if(mem.hasNodeMemory(this)) { if(((Collection)mem.getNodeMemory(this)).remove(tuple)) { propagateRemovalToTupleConsumers(tuple, state, mem, agenda); } } state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEMODIFIED); if(getRelevantAttributes().contains(type)) boolean affected = isAffected(type); boolean contains = mem.hasNodeMemory(this) && ((Collection)mem.getNodeMemory(this)).contains(tuple); propagateRemovalToTupleConsumers(tuple, state, mem, agenda); propagateAdditionToTupleConsumers(tuple, state, mem, agenda); propagateModificationToTupleConsumers(tuple, tupleindex, type, oldvalue, newvalue, state, mem, agenda); propagateModificationToTupleConsumers(tuple, tupleindex, type, oldvalue, newvalue, state, mem, agenda);
/** * 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); }