/** * */ protected void dumpPlans() { if(plans!=null) { System.out.println("plans: "+plans.size()); System.out.println("--------"); for(RPlan plan: plans) { StringBuffer buf = new StringBuffer(); determineValid(plan, plan, buf); if(plan.isFinishing()) System.out.println("aborted zombie plan: "+plan.getId()); System.out.println(buf.toString()); System.out.println(plan.getId()+" "+plan.getLifecycleState()+" "+plan.getProcessingState()); System.out.println("--------"); } } }
/** * */ protected void abortPlans() { if(childplan!=null) { childplan.abort(); } }
public IFuture<Void> execute(IEvent event, IRule<Void> rule, Object context, Object condresult) { // System.out.println("Added to waitqueue: "+event); addToWaitqueue(new ChangeEvent(event)); return IFuture.DONE; } });
public void exceptionOccurred(Exception exception) { // if(rescom.equals(getResumeCommand())) { setException(exception); RPlan.executePlan(RPlan.this, ia, rescom); } } }));
public void resultAvailable(T result) { // if(rescom.equals(getResumeCommand())) { setDispatchedElement(result); RPlan.executePlan(RPlan.this, ia, rescom); } }
final String rulename = getRuleName(); addResumeCommand(rescom); IFuture<ITimer> cont = createTimer(timeout, getAgent(), rescom); cont.addResultListener(new DefaultResultListener<ITimer>()
Object element = rplan.getReason(); if(element instanceof RGoal) rplan.abort(); if(RPlan.PlanProcessingState.WAITING.equals(rplan.getProcessingState())) else if(RPlan.PlanLifecycleState.NEW.equals(rplan.getLifecycleState())) rplan.setLifecycleState(RPlan.PlanLifecycleState.BODY); IPlanBody body = rplan.getBody(); try System.out.println("Plan proc state invalid: "+rplan.getProcessingState());
rplan.abort(); if(rplan.getReason() instanceof RProcessableElement) ((RProcessableElement)rplan.getReason()).planFinished(rplan.getAgent(), null); if(!rplan.isFinishing() && RPlan.PlanLifecycleState.NEW.equals(rplan.getLifecycleState())) IPlanBody body = rplan.getBody(); body.executePlan().addResultListener(new IResultListener<Void>()
final RPlan rplan = new RPlan(mplan, candidate, ia); rplan.setReason(reason); rplan.setDispatchedElement(reason); final String rulename = rplan.getId()+"_waitqueue"; Rule<Void> rule = new Rule<Void>(rulename, ICondition.TRUE_CONDITION, new IAction<Void>() rplan.setBody(body);
/** * * @param plan * @param orig * @param buf */ protected void determineValid(RPlan plan, RPlan orig, StringBuffer buf) { buf.append(plan.getId()+plan.isFinishing()); Object reason = plan.getReason(); if(reason instanceof RGoal) { RGoal rg = (RGoal)reason; if(rg.isFinished()) System.out.println("fini goal"+" "+reason+" "+orig); RPlan pp = rg.getParentPlan(); buf.append(" reason is: "+((RProcessableElement)reason).getId()+rg.lifecyclestate); if(pp!=null) { if(pp.isFinished()) System.out.println("fini plan"+" "+pp+" "+orig); buf.append(" parent plan is: "); determineValid(pp, orig, buf); } } }
if(!isFinished()) setException(new PlanAbortedException()); // todo: BodyAborted if(PlanProcessingState.WAITING.equals(getProcessingState())) RPlan.executePlan(this, ia, new ICommand<Boolean>()
/** * */ protected void dumpPlans() { if(plans!=null) { System.out.println("plans: "+plans.size()); System.out.println("--------"); for(RPlan plan: plans) { StringBuffer buf = new StringBuffer(); determineValid(plan, plan, buf); if(plan.aborted) System.out.println("aborted zombie plan: "+plan.getId()); System.out.println(buf.toString()); System.out.println(plan.getId()+" "+plan.getLifecycleState()+" "+plan.getProcessingState()); System.out.println("--------"); } } }
final RPlan rplan = new RPlan(mplan, candidate, reason, ia, mappingvals, config); //mappingvals==null? new RPlan(mplan, candidate, ia): rplan.setDispatchedElement(reason); rplan.internalSetupEventsRule(events); WaitAbstraction wa = rplan.getOrCreateWaitqueueWaitAbstraction(); wa.addModelElement(mevent); WaitAbstraction wa = rplan.getOrCreateWaitqueueWaitAbstraction(); wa.addModelElement(mevent); rplan.setBody(body);
protected void determineValid(RPlan plan, RPlan orig, StringBuffer buf) { buf.append(plan.getId()+plan.aborted); Object reason = plan.getReason(); if(reason instanceof RGoal) { RGoal rg = (RGoal)reason; if(rg.isFinished()) System.out.println("fini goal"+" "+reason+" "+orig); RPlan pp = rg.getParentPlan(); buf.append(" reason is: "+((RProcessableElement)reason).getId()+rg.lifecyclestate); if(pp!=null) { if(pp.isFinished()) System.out.println("fini plan"+" "+pp+" "+orig); buf.append(" parent plan is: "); determineValid(pp, orig, buf); } } } }
public IFuture<Void> execute(IEvent event, IRule<Void> rule, Object context, Object condresult) { RPlan rplan = RPlan.createRPlan(mplan, mplan, new ChangeEvent(event), getInternalAccess()); RPlan.executePlan(rplan, getInternalAccess(), null); return IFuture.DONE; } };
invokeBooleanMethod(plan.getBody().getBody(), mi.getMethod(component.getClassLoader()), plan.getModelElement(), event, plan, component) .addResultListener(new IResultListener<Boolean>() if(!evaluateCondition(component, mcond, plan.getModelElement(), Collections.singletonMap(plan.getFetcherName(), (Object)plan))) plan.abort();
IBDIModel bdim = getAgent().getComponentFeature(IInternalBDIAgentFeature.class).getBDIModel(); final MGoal mgoal = bdim.getCapability().getGoal(goal.getClass().getName()); if(mgoal==null) throw new RuntimeException("Unknown goal type: "+goal); final RGoal rgoal = new RGoal(getAgent(), mgoal, goal, null, null, null, null); rgoal.setParent(this); addResumeCommand(rescom); final PlanLifecycleState lcs = getLifecycleState(); IFuture<ITimer> cont = createTimer(timeout, getAgent(), rescom); cont.addResultListener(new DefaultResultListener<ITimer>()
/** * * @return */ protected String getRuleName() { return getId()+"_wait_#"+cnt++; }
throw new RuntimeException("Plan model not found for: "+plan); final RPlan rplan = RPlan.createRPlan(mplan, plan, null, ip.getInternalAccess()); rplan.addPlanListener(new IPlanListener<E>() rplan.setReason(new ChangeEvent(null, null, args)); RPlan.executePlan(rplan, getInterpreter().getInternalAccess(), null); return ret;
final String rulename = getRuleName(); addResumeCommand(rescom); IFuture<ITimer> cont = createTimer(timeout, ip, rescom); cont.addResultListener(new DefaultResultListener<ITimer>()