/** * Get the discovery agent. */ protected DiscoveryAgent getDiscoveryAgent() { return (DiscoveryAgent)((IPojoMicroAgent)agent).getPojoAgent(); } }
/** * Get the discovery agent. */ protected DiscoveryAgent getDiscoveryAgent() { return (DiscoveryAgent)((IPojoMicroAgent)agent).getPojoAgent(); } }
/** * Get the pojo agent (or null if it has none). * @return The pojo agent object. */ public Object getPojoAgent() { Object ret = null; MicroAgent ma = getAgent(); if(ma instanceof IPojoMicroAgent) ret = ((IPojoMicroAgent)ma).getPojoAgent(); return ret; }
public Object execute(Class<?> type) { Object ret = null; if(SReflect.isSupertype(type, microagent.getClass())) { ret = microagent; } else if(microagent instanceof IPojoMicroAgent && SReflect.isSupertype(type, ((IPojoMicroAgent)microagent).getPojoAgent().getClass())) { ret = ((IPojoMicroAgent)microagent).getPojoAgent(); } return ret; } };
public Object execute(Class<?> type) { Object ret = null; if(SReflect.isSupertype(type, microagent.getClass())) { ret = microagent; } else if(microagent instanceof IPojoMicroAgent && SReflect.isSupertype(type, ((IPojoMicroAgent)microagent).getPojoAgent().getClass())) { ret = ((IPojoMicroAgent)microagent).getPojoAgent(); } return ret; } };
/** * Unobserving an old belief value. * @param agent The agent. * @param belname The belief name. */ public static void unobserveValue(BDIAgent agent, final String belname) { // System.out.println("unobserve: "+agent+" "+belname); try { Object pojo = ((IPojoMicroAgent)agent).getPojoAgent(); Method getter = pojo.getClass().getMethod("get"+belname.substring(0,1).toUpperCase()+belname.substring(1), new Class[0]); Object oldval = getter.invoke(pojo, new Object[0]); RuleSystem rs = ((BDIAgentInterpreter)agent.getInterpreter()).getRuleSystem(); rs.unobserveObject(oldval); } catch(Exception e) { e.printStackTrace(); } }
public void customResultAvailable(Void result) { Object agent = microagent instanceof IPojoMicroAgent? ((IPojoMicroAgent)microagent).getPojoAgent(): microagent; injectServices(agent, micromodel).addResultListener(new DelegationResultListener<Void>(ret)); } });
/** * Add extra init code before provided services. */ public IFuture<Void> initProvidedServices(final IModelInfo model, final String config) { final Future<Void> ret = new Future<Void>(); final Object agent = microagent instanceof IPojoMicroAgent? ((IPojoMicroAgent)microagent).getPojoAgent(): microagent; injectArguments(agent, micromodel).addResultListener(new DelegationResultListener<Void>(ret) { public void customResultAvailable(Void result) { injectParent(agent, micromodel).addResultListener(createResultListener(new DelegationResultListener<Void>(ret) { public void customResultAvailable(Void result) { MicroAgentInterpreter.super.initProvidedServices(model, config) .addResultListener(new DelegationResultListener<Void>(ret)); } })); } }); return ret; }
Object pojo = ((IPojoMicroAgent)agent).getPojoAgent(); mptypes2[0] = pojo.getClass(); Constructor<?> c = goalcl.getConstructor(mptypes2);
/** * Set an injected field value. */ protected void setFieldValue(Object val, Field field, String convert) { if(val!=null || !SReflect.isBasicType(field.getType())) { try { Object agent = microagent instanceof IPojoMicroAgent? ((IPojoMicroAgent)microagent).getPojoAgent(): microagent; if(convert!=null) { SimpleValueFetcher fetcher = new SimpleValueFetcher(getFetcher()); fetcher.setValue("$value", val); val = SJavaParser.evaluateExpression(convert, getModel().getAllImports(), fetcher, getClassLoader()); } field.setAccessible(true); field.set(agent, val); } catch(Exception e) { throw new RuntimeException(e); } } }
/** * Get the value fetcher. */ public IValueFetcher getFetcher() { assert !getComponentAdapter().isExternalThread(); if(fetcher==null) { SimpleValueFetcher fetcher = new SimpleValueFetcher(super.getFetcher()); if(microagent instanceof IPojoMicroAgent) { fetcher.setValue("$pojoagent", ((IPojoMicroAgent)microagent).getPojoAgent()); } this.fetcher = fetcher; } return fetcher; }
Object agent = microagent instanceof IPojoMicroAgent? ((IPojoMicroAgent)microagent).getPojoAgent(): microagent; field.setAccessible(true); Object val = field.get(agent);
final Object agent = ia instanceof IPojoMicroAgent? ((IPojoMicroAgent)ia).getPojoAgent(): ia; pojo = rp.getBody().getBody(agent);
/** * Create a new plan body. */ public ClassPlanBody(IInternalAccess ia, RPlan rplan, Class<?> body, Object plan) { super(ia, rplan); this.body = body; this.plan = plan; // Class<?> mbd = body!=null? body: plan.getClass(); MBody mbody = ((MPlan)rplan.getModelElement()).getBody(); bodymethod = mbody.getBodyMethod(ia.getClassLoader()).getMethod(ia.getClassLoader()); MethodInfo mi = mbody.getPassedMethod(ia.getClassLoader()); if(mi!=null) passedmethod = mi.getMethod(ia.getClassLoader()); mi = mbody.getFailedMethod(ia.getClassLoader()); if(mi!=null) failedmethod = mi.getMethod(ia.getClassLoader()); mi = mbody.getAbortedMethod(ia.getClassLoader()); if(mi!=null) abortedmethod = mi.getMethod(ia.getClassLoader()); if(plan!=null) injectElements(((IPojoMicroAgent)ia).getPojoAgent()); }