public boolean isExternalThread() { return BDIInterpreter.this.getComponentAdapter().isExternalThread(); }
/** * Test if current thread is the component thread. * @return True if the current thread is the component thread. */ public boolean isComponentThread() { return !getInterpreter().getComponentAdapter().isExternalThread(); }
/** * Set a result value. * @param name The result name. * @param value The result value. */ public void setResultValue(String name, Object value) { assert !getComponentAdapter().isExternalThread(); // todo: store results only within listener?! if(results==null) results = new HashMap<String, Object>(); results.put(name, value); resultlistener.intermediateResultAvailable(new Tuple2<String, Object>(name, value)); }
public boolean isExternalThread() { boolean ret = false; // Default for models during creation. if(getInterpreter()!=null) { ret = getInterpreter().getComponentAdapter().isExternalThread(); } return ret; } }
/** * Create the service container. * @return The service conainer. */ public IServiceContainer createServiceContainer() { assert container==null; return new ComponentServiceContainer(adapter, getComponentAdapter().getDescription().getType(), getInternalAccess(), isRealtime()); }
/** * Add a belief listener. * @param listener The belief listener. */ public void addBeliefSetListener(final IBeliefSetListener listener) { if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { addEventListener(listener, getHandle()); } }; } else { addEventListener(listener, getHandle()); } }
/** * Remove a message event listener. * @param listener The message event listener. */ public void removeMessageEventListener(final IMessageEventListener listener) { if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { removeEventListener(listener, getHandle(), false); } }; } else { removeEventListener(listener, getHandle(), false); } }
/** * Remove a belief listener. * @param listener The belief listener. */ public void removeBeliefSetListener(final IBeliefSetListener listener) { if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { removeEventListener(listener, getHandle(), false); } }; } else { removeEventListener(listener, getHandle(), false); } }
/** * Remove a belief listener. * @param listener The belief listener. */ public void removeBeliefListener(final IBeliefListener listener) { if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { removeEventListener(listener, getHandle(), false); } }; } else { removeEventListener(listener, getHandle(), false); } }
/** * Wait for some time and execute a component step afterwards. */ public <T> IFuture<T> waitForDelay(final long delay, final IComponentStep<T> step, final boolean realtime) { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = getInterpreter().waitForDelay(delay, step, realtime); } }; return (IFuture<T>)invoc.object; } else { return getInterpreter().waitForDelay(delay, step, realtime); } }
/** * Wait for some time and execute a component step afterwards. */ public IFuture<Void> waitForDelay(final long delay, final boolean realtime) { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = getInterpreter().waitForDelay(delay, realtime); } }; return (IFuture<Void>)invoc.object; } else { return getInterpreter().waitForDelay(delay, realtime); } }
/** * Get the arguments. * @return The arguments. */ public Map getArguments() { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = getInterpreter().getArguments(); } }; return (Map)invoc.object; } else { return getInterpreter().getArguments(); } }
/** * Remove an element. */ public void removeElement(final Object element) { if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { getState().removeAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_waitqueueelements, ((ElementFlyweight)element).getHandle()); } }; } else { getState().removeAttributeValue(rplan, OAVBDIRuntimeModel.plan_has_waitqueueelements, ((ElementFlyweight)element).getHandle()); } }
/** * Get the native (platform specific) message object. */ public Object getMessage() { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = getState().getAttributeValue(getHandle(), OAVBDIRuntimeModel.messageevent_has_nativemessage); } }; return invoc.object; } else { return getState().getAttributeValue(getHandle(), OAVBDIRuntimeModel.messageevent_has_nativemessage); } }
/** * Get the value class. * @return The valuec class. */ public Class getClazz() { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { clazz = SFlyweightFunctionality.getClazz(getState(), getHandle()); } }; return invoc.clazz; } else { return SFlyweightFunctionality.getClazz(getState(), getHandle()); } }
/** * Remove all facts from a belief. */ public void removeFacts() { if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { SFlyweightFunctionality.removeFacts(getState(), getHandle(), getScope()); } }; } else { SFlyweightFunctionality.removeFacts(getState(), getHandle(), getScope()); } }
/** * Get the fact of a belief. * @return The fact. */ public Object getFact() { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = BeliefRules.getBeliefValue(getState(), getHandle(), getScope()); } }; return invoc.object; } else { return BeliefRules.getBeliefValue(getState(), getHandle(), getScope()); } }
/** * Get the waitqueue. * @return The waitqueue. */ public IWaitqueue getWaitqueue() { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = WaitqueueFlyweight.getWaitqueueFlyweight(getState(), getScope(), getHandle()); } }; return (IWaitqueue)invoc.object; } else { return WaitqueueFlyweight.getWaitqueueFlyweight(getState(), getScope(), getHandle()); } }
/** * Abort a running plan. */ public void abortPlan() { // what about when the plan is handling a goal. // is the goal properly executed? if(getInterpreter().getComponentAdapter().isExternalThread()) { new AgentInvocation() { public void run() { PlanRules.abortPlan(getState(), getScope(), getHandle()); } }; } else { PlanRules.abortPlan(getState(), getScope(), getHandle()); } }
/** * Get the scope. * @return The scope. */ public IBDIExternalAccess getBDIExternalAccess() { if(getInterpreter().getComponentAdapter().isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { object = new ExternalAccessFlyweight(getState(), getScope()); } }; return (IBDIExternalAccess)invoc.object; } else { return new ExternalAccessFlyweight(getState(), getScope()); } }