/** * Remove a registered message event. * @param msgevent The message event. */ public static void deregisterMessageEvent(IOAVState state, Object rmevent, Object rscope) { state.removeAttributeValue(rscope, OAVBDIRuntimeModel.capability_has_sentmessageevents, rmevent); // Collection coll = state.getAttributeValues(rscope, OAVBDIRuntimeModel.capability_has_sentmessageevents); // if(!coll.remove(rmevent)) // throw new RuntimeException("Registration of message event not found: "+rmevent+" "+rscope); // System.out.println("+++"+BDIInterpreter.getInterpreter(state).getAgentAdapter() // .getComponentIdentifier()+" has open conversations: "+coll.size()+" "+coll); }
/** * Remove an external condition. * @param condition The condition. */ public static void removeExternalCondition(IOAVState state, IExternalCondition condition, Object wa) { if(wa!=null) { Collection conditions = state.getAttributeValues(wa, OAVBDIRuntimeModel.waitabstraction_has_externalconditions); if(conditions!=null && conditions.contains(condition)) state.removeAttributeValue(wa, OAVBDIRuntimeModel.waitabstraction_has_externalconditions, condition); } }
/** * Get the next element. * @return The next element (or null if none). */ public static Object removeNextElement(IOAVState state, Object scope, Object rplan) { Object ret = null; Collection coll = state.getAttributeValues(rplan, OAVBDIRuntimeModel.plan_has_waitqueueelements); if(coll!=null && coll.iterator().hasNext()) { Object pe = coll.iterator().next(); state.removeAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_waitqueueelements, pe); // todo: wrong scope! ret = getFlyweight(state, scope, pe); } return ret; }
public void execute(IOAVState state, IVariableAssignments assignments) { Object changeevent = assignments.getVariableValue("?changeevent"); Object ragent = assignments.getVariableValue("?ragent"); state.removeAttributeValue(ragent, OAVBDIRuntimeModel.agent_has_changeevents, changeevent); // System.err.println("removing: "+changeevent+", "+BDIInterpreter.getInterpreter(state).getAgentAdapter().getComponentIdentifier()); } };
public void run() { getState().removeAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_waitqueueelements, ((ElementFlyweight)element).getHandle()); } };
public void execute(IOAVState state, IVariableAssignments assignments) { Object ringoal = assignments.getVariableValue("?ringoal"); Object rgoal = assignments.getVariableValue("?rgoal"); // System.out.println("Removing inhibitor from goal: "+ringoal+" "+rgoal); state.removeAttributeValue(ringoal, OAVBDIRuntimeModel.goal_has_inhibitors, rgoal); } };
public void execute(IOAVState state, IVariableAssignments assignments) { Object refgoal = assignments.getVariableValue("?refgoal"); Object rgoal = assignments.getVariableValue("?rgoal"); // System.out.println("Removing instance inhibitor from goal: "+refgoal+" "+rgoal); state.removeAttributeValue(refgoal, OAVBDIRuntimeModel.goal_has_inhibitors, rgoal); } };
/** * Remove a value from a parameter set. * parameterset_has_facts should only be modified through this method! */ public static void removeParameterSetValue(IOAVState state, Object rparameterset, Object value) { Class clazz = (Class)state.getAttributeValue(rparameterset, OAVBDIRuntimeModel.parameterset_has_type); value = SReflect.convertWrappedValue(value, clazz); state.removeAttributeValue(rparameterset, OAVBDIRuntimeModel.parameterset_has_values, value); } }
/** * */ public static void removeReply(IOAVState state, Object scope, ElementFlyweight me, Object wa) { // Register event also in conversation map for message routing. Object rmevent = me.getHandle(); MessageEventRules.deregisterMessageEvent(state, rmevent, scope); if(wa!=null) { Collection rmevents = state.getAttributeValues(wa, OAVBDIRuntimeModel.waitabstraction_has_messageevents); if(rmevents!=null && rmevents.contains(rmevent)) state.removeAttributeValue(wa, OAVBDIRuntimeModel.waitabstraction_has_messageevents, rmevent); } }
public void execute(IOAVState state, IVariableAssignments assignments) { Object rgoal = assignments.getVariableValue("?rgoal"); Object rplan = assignments.getVariableValue("?rplan"); // if(((String)state.getAttributeValue(state.getAttributeValue(rgoal, OAVBDIRuntimeModel.element_has_model), OAVBDIMetaModel.modelelement_has_name)).startsWith("purchase")) // System.out.println("FailedRemove: "+rgoal+" "+state.getAttributeValue(state.getAttributeValue(rgoal, // OAVBDIRuntimeModel.element_has_model), OAVBDIMetaModel.modelelement_has_name)); state.removeAttributeValue(rgoal, OAVBDIRuntimeModel.goal_has_finishedplans, rplan); changeProcessingState(state, rgoal, OAVBDIRuntimeModel.GOALPROCESSINGSTATE_FAILED); } };
public void execute(IOAVState state, IVariableAssignments assignments) { Object rgoal = assignments.getVariableValue("?rgoal"); Object rplan = assignments.getVariableValue("?rplan"); // System.out.println("SucceededRemove: "+rgoal+" "+state.getAttributeValue(state.getAttributeValue(rgoal, // OAVBDIRuntimeModel.element_has_model), OAVBDIMetaModel.modelelement_has_name)); state.removeAttributeValue(rgoal, OAVBDIRuntimeModel.goal_has_finishedplans, rplan); changeProcessingState(state, rgoal, OAVBDIRuntimeModel.GOALPROCESSINGSTATE_SUCCEEDED); } };
/** * */ public static void removeMessageEvent(IOAVState state, Object scope, String type, Object wa) { if(wa!=null) { Collection mevents = state.getAttributeValues(wa, OAVBDIRuntimeModel.waitabstraction_has_messageeventtypes); Object[] rscope = AgentRules.resolveCapability(type, OAVBDIMetaModel.messageevent_type, scope, state); Object mcapa = state.getAttributeValue(rscope[1], OAVBDIRuntimeModel.element_has_model); if(!state.containsKey(mcapa, OAVBDIMetaModel.capability_has_messageevents, rscope[0])) throw new RuntimeException("Unknown message event: "+type); Object mevent = state.getAttributeValue(mcapa, OAVBDIMetaModel.capability_has_messageevents, rscope[0]); if(mevents!=null && mevents.contains(mevent)) state.removeAttributeValue(wa, OAVBDIRuntimeModel.waitabstraction_has_messageeventtypes, mevent); } }
/** * Remove a goal. * @param goal The goal. */ public static void removeGoal(IOAVState state, ElementFlyweight goal, Object wa) { if(wa!=null) { Object rgoal = goal.getHandle(); Collection goals = state.getAttributeValues(wa, OAVBDIRuntimeModel.waitabstraction_has_goals); if(goals!=null && goals.contains(rgoal)) state.removeAttributeValue(wa, OAVBDIRuntimeModel.waitabstraction_has_goals, rgoal); BDIInterpreter.getInterpreter(state).getEventReificator().removeObservedElement(rgoal); } }
/** * Remove a value from a belief set. * Takes care of registering / deregistering. * beliefset_has_facts should only be modified through this method! */ public static void removeBeliefSetValue(IOAVState state, Object rbeliefset, Object fact, Object scope) { // Convert wrapped basic values to desired class (e.g. Integer to Long). Object mbel = state.getAttributeValue(rbeliefset, OAVBDIRuntimeModel.element_has_model); Class clazz = (Class)state.getAttributeValue(mbel, OAVBDIMetaModel.typedelement_has_class); fact = SReflect.convertWrappedValue(fact, clazz); state.removeAttributeValue(rbeliefset, OAVBDIRuntimeModel.beliefset_has_facts, fact); storeBeliefSetResults(state, rbeliefset, scope); }
public void run() { Collection old = getState().getAttributeValues(getHandle(), OAVBDIMetaModel.referenceableelement_has_assignto); if(old!=null) { for(Iterator it=old.iterator(); it.hasNext(); ) { getState().removeAttributeValue(getHandle(), OAVBDIMetaModel.referenceableelement_has_assignto, it.next()); } } if(assigntos!=null) { for(int i=0; i<assigntos.length; i++) { getState().addAttributeValue(getHandle(), OAVBDIMetaModel.referenceableelement_has_assignto, assigntos[i]); } } } };
/** * Remove a goal. * @param type The type. */ public static void removeGoal(IOAVState state, Object scope, String type, Object wa) { if(wa!=null) { Collection mgoals = state.getAttributeValues(wa, OAVBDIRuntimeModel.waitabstraction_has_goalfinisheds); Object[] rscope = AgentRules.resolveCapability(type, OAVBDIMetaModel.goal_type, scope, state); Object mcapa = state.getAttributeValue(rscope[1], OAVBDIRuntimeModel.element_has_model); if(!state.containsKey(mcapa, OAVBDIMetaModel.capability_has_goals, rscope[0])) throw new RuntimeException("Unknown goal: "+type); Object mgoal = state.getAttributeValue(mcapa, OAVBDIMetaModel.capability_has_goals, rscope[0]); if(mgoals!=null && mgoals.contains(mgoal)) state.removeAttributeValue(wa, OAVBDIRuntimeModel.waitabstraction_has_goalfinisheds, mgoal); BDIInterpreter.getInterpreter(state).getEventReificator().removeObservedElement(mgoal); } }
public void execute(IOAVState state, IVariableAssignments assignments) { Object ragent = assignments.getVariableValue("?ragent"); Object rawmsg = assignments.getVariableValue("?rawmsg"); String agentname = BDIInterpreter.getInterpreter(state).getAgentAdapter().getComponentIdentifier().getLocalName(); BDIInterpreter.getInterpreter(state).getLogger(ragent).severe("Agent has received msg and has found no template: "+agentname+" "+rawmsg); state.removeAttributeValue(ragent, OAVBDIRuntimeModel.agent_has_inbox, rawmsg); } };
public void execute(IOAVState state, IVariableAssignments assignments) { Object rplan = assignments.getVariableValue("?rplan"); Object rcapa = assignments.getVariableValue("?rcapa"); Object rpe = assignments.getVariableValue("?rpe"); state.setAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_processingstate, OAVBDIRuntimeModel.PLANPROCESSINGTATE_READY); state.setAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_dispatchedelement, rpe); PlanRules.cleanupPlanWait(state, rcapa, rplan, false); state.removeAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_waitqueueelements, rpe); // System.out.println("DISPATCH_WAITQUEUE_ELEMENT_ACTION: schedulePlanInstance: " // +BDIInterpreter.getInterpreter(state).getAgentAdapter().getComponentIdentifier().getLocalName() // +", "+rplan+", "+rpe); } };
public void execute(IOAVState state, IVariableAssignments assignments) { Object ragent = assignments.getVariableValue("?ragent"); Object rcapa = assignments.getVariableValue("?rcapa"); IMessageAdapter rawmsg = (IMessageAdapter)assignments.getVariableValue("?rawmsg"); Object mevent = assignments.getVariableValue("?mevent"); // String agentname = BDIInterpreter.getInterpreter(state).getAgentAdapter().getComponentIdentifier().getLocalName(); // System.out.println("Agent has received msg: "+agentname+" "+rawmsg+" "+mevent); Object revent = createReceivedMessageEvent(state, mevent, rawmsg, rcapa, null); state.addAttributeValue(rcapa, OAVBDIRuntimeModel.capability_has_messageevents, revent); state.setAttributeValue(revent, OAVBDIRuntimeModel.processableelement_has_state, OAVBDIRuntimeModel.PROCESSABLEELEMENT_UNPROCESSED); state.removeAttributeValue(ragent, OAVBDIRuntimeModel.agent_has_inbox, rawmsg); } };
public void execute(IOAVState state, IVariableAssignments assignments) { Object ragent = assignments.getVariableValue("?ragent"); Object rcapa = assignments.getVariableValue("?rcapa"); IMessageAdapter rawmsg = (IMessageAdapter)assignments.getVariableValue("?rawmsg"); Object mevent = assignments.getVariableValue("?mevent"); // todo: fetch value from rete, currently not possible because rete does not cache function call results. Object original = getInReplyMessageEvent(state, rawmsg, rcapa); // String agentname = BDIInterpreter.getInterpreter(state).getAgentAdapter().getComponentIdentifier().getLocalName(); // System.out.println("Agent has received conversation msg: "+agentname+" "+rawmsg+" "+mevent); Object revent = createReceivedMessageEvent(state, mevent, rawmsg, rcapa, original); state.addAttributeValue(rcapa, OAVBDIRuntimeModel.capability_has_messageevents, revent); state.setAttributeValue(revent, OAVBDIRuntimeModel.processableelement_has_state, OAVBDIRuntimeModel.PROCESSABLEELEMENT_UNPROCESSED); state.removeAttributeValue(ragent, OAVBDIRuntimeModel.agent_has_inbox, rawmsg); } };