/** * Send a new object to this node. * @param object The object. */ public void addObject(Object object, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { //System.out.println("Add object called: "+this+" "+object); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_OBJECTADDED); Map smem = (Map)mem.getNodeMemory(this); assert !smem.containsKey(object) : object; // if(!smem.containsKey(object)) { Collection vfs = generateVirtualFacts(object, state); smem.put(object, vfs); //System.out.println("ADD: Object splitted to: "+object+" "+vfs); for(Iterator it=vfs.iterator(); it.hasNext(); ) { propagateAdditionToObjectConsumers(it.next(), state, mem, agenda); } } state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_OBJECTADDED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
/** * Send a new object to this node. * @param object The object. */ public void addObject(Object object, IOAVState state, ReteMemory mem, AbstractAgenda agenda) { //System.out.println("Add object called: "+this+" "+object); state.getProfiler().start(IProfiler.TYPE_NODE, this); state.getProfiler().start(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_OBJECTADDED); Map smem = (Map)mem.getNodeMemory(this); assert !smem.containsKey(object) : object; // if(!smem.containsKey(object)) { Collection vfs = generateVirtualFacts(object, state); smem.put(object, vfs); //System.out.println("ADD: Object splitted to: "+object+" "+vfs); for(Iterator it=vfs.iterator(); it.hasNext(); ) { propagateAdditionToObjectConsumers(it.next(), state, mem, agenda); } } state.getProfiler().stop(IProfiler.TYPE_NODEEVENT, IProfiler.NODEEVENT_OBJECTADDED); state.getProfiler().stop(IProfiler.TYPE_NODE, this); }
propagateAdditionToObjectConsumers(o, state, mem, agenda);
propagateAdditionToObjectConsumers(o, state, mem, agenda);