agenda.removeActivation(new Activation(rule, oldass, state)); agenda.addActivation(new Activation(rule, newass, state));
agenda.removeActivation(new Activation(rule, oldass, state)); agenda.addActivation(new Activation(rule, newass, state));
/** * Send an tuple to this node. * @param tuple The tuple. */ public void addTuple(Tuple tuple, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { // System.out.println("Add Tuple: "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); // Store variable assignments. Map nodemem = (Map)mem.getNodeMemory(this); Map vars = new HashMap(); for(Iterator it=extractors.keySet().iterator(); it.hasNext(); ) { Object variable = it.next(); vars.put(variable, ((IValueExtractor)extractors.get(variable)).getValue(tuple, null, null, state)); } ReteVariableAssignments assignments = new ReteVariableAssignments(vars, rule); nodemem.put(tuple, assignments); // Create activation for tuple. // Activation act = new Activation(rule, new ReteVariableAssignments(state, tuple, extractors)); Activation act = new Activation(rule, assignments, state); agenda.addActivation(act); state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
/** * Send an tuple to this node. * @param tuple The tuple. */ public void addTuple(Tuple tuple, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { // System.out.println("Add Tuple: "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEADDED); // Store variable assignments. Map nodemem = (Map)mem.getNodeMemory(this); Map vars = new HashMap(); for(Iterator it=extractors.keySet().iterator(); it.hasNext(); ) { Object variable = it.next(); vars.put(variable, ((IValueExtractor)extractors.get(variable)).getValue(tuple, null, null, state)); } ReteVariableAssignments assignments = new ReteVariableAssignments(vars, rule); nodemem.put(tuple, assignments); // Create activation for tuple. // Activation act = new Activation(rule, new ReteVariableAssignments(state, tuple, extractors)); Activation act = new Activation(rule, assignments, state); agenda.addActivation(act); 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: "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); // Get old assignments. Map nodemem = (Map)mem.getNodeMemory(this); ReteVariableAssignments assignments = (ReteVariableAssignments)nodemem.remove(tuple); // Activation act = new Activation(rule, new ReteVariableAssignments(state, tuple, extractors)); Activation act = new Activation(rule, assignments, state); agenda.removeActivation(act); state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); 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: "+tuple); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); // Get old assignments. Map nodemem = (Map)mem.getNodeMemory(this); ReteVariableAssignments assignments = (ReteVariableAssignments)nodemem.remove(tuple); // Activation act = new Activation(rule, new ReteVariableAssignments(state, tuple, extractors)); Activation act = new Activation(rule, assignments, state); agenda.removeActivation(act); state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_TUPLEREMOVED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }