@Plans( @Plan(trigger=@Trigger(goals=GarbageCollectorBDI.Check.class), body=@Body(CheckingPlanEnv.class)), @Plan(trigger=@Trigger(goals=GarbageCollectorBDI.Take.class), body=@Body(TakePlanEnv.class)), @Plan(trigger=@Trigger(goals=GarbageCollectorBDI.Go.class), body=@Body(GoPlanEnv.class)), @Plan(trigger=@Trigger(goals=GarbageCollectorBDI.Pick.class), body=@Body(PickUpPlanEnv.class)) }) public class GarbageCollectorBDI extends BaseAgentBDI
/** * */ protected MPlan createMPlan(BDIModel bdimodel, Plan p, MethodInfo mi, String name, ClassInfo ci, ClassLoader cl, Map<ClassInfo, List<Tuple2<MGoal, String>>> pubs) { Body body = p.body(); ServicePlan sp = body.service(); MPlan mplan = bdimodel.getCapability().getPlan(name); if(mplan==null) { MTrigger mtr = buildPlanTrigger(bdimodel, p.trigger(), cl, pubs); MTrigger wmtr = buildPlanTrigger(bdimodel, p.waitqueue(), cl, pubs); if(ci==null) ci = Object.class.equals(body.value())? null: new ClassInfo(body.value().getName()); // Class<? extends IServiceParameterMapper<Object>> mapperclass = (Class<? extends IServiceParameterMapper<Object>>)(IServiceParameterMapper.class.equals(sp.mapper())? null: sp.mapper()); Class<? extends IServiceParameterMapper<Object>> mapperclass = (Class<? extends IServiceParameterMapper<Object>>)(IServiceParameterMapper.class.getName().equals(sp.mapper().getName())? null: sp.mapper()); MBody mbody = new MBody(mi, ci, sp.name().length()==0? null: sp.name(), sp.method().length()==0? null: sp.method(), mapperclass==null? null: new ClassInfo(mapperclass), body.component().length()==0 ? null : body.component()); mplan = new MPlan(name, mbody, mtr, wmtr, p.priority()); } return mplan; }
/** * The translation agent B1. * * Declare and activate an extra Java plan. */ @Agent @Description("The translation agent B1. <br> Declare and activate an extra Java plan.") @Plans(@Plan(body=@Body(TranslationPlan.class))) public class TranslationBDI { /** The agent. */ // @Agent // protected IInternalAccess agent; /** The bdi api. */ @AgentFeature protected IBDIAgentFeature bdi; /** * The agent body. */ @AgentBody public void body() { bdi.adoptPlan(new TranslationPlan()); } }
ServicePlan sp = body.service(); if(mtr==null && !Object.class.equals(body.value())) Class<?> bcl = body.value(); Plan pl = getAnnotation(bcl, Plan.class, cl); mtr = buildPlanTrigger(bdimodel, pl.trigger(), cl, pubs); ci = Object.class.equals(body.value())? null: new ClassInfo(body.value().getName()); mapperclass==null? null: new ClassInfo(mapperclass), body.component().length()==0 ? null : body.component()); mplan = new MPlan(name, mbody, mtr, wmtr, p.priority());
@Plans(@Plan(body=@Body(TranslationBDI.TranslationPlan.class))) public class TranslationBDI
@Plans(@Plan(body=@Body(ExternalPlan.class))) public class ExternalPlanBDI
@Plans( @Plan(trigger=@Trigger(goals=HandleDisaster.class), body=@Body(HandleDisasterPlan.class)), @Plan(trigger=@Trigger(goals=ClearChemicals.class), body=@Body(HandleFireBrigadesClearChemicalsPlan.class)), @Plan(trigger=@Trigger(goals=ExtinguishFires.class), body=@Body(HandleFireBrigadesExtinguishFiresPlan.class)), @Plan(trigger=@Trigger(goals=TreatVictims.class), body=@Body(HandleAmbulancesPlan.class)), @Plan(trigger=@Trigger(goals=SendRescueForce.class), body=@Body(ClearChemicalsPlan.class)), @Plan(trigger=@Trigger(goals=SendRescueForce.class), body=@Body(ExtinguishFirePlan.class)), @Plan(trigger=@Trigger(goals=SendRescueForce.class), body=@Body(TreatVictimsPlan.class)), }) @Agent
@Plan(trigger=@Trigger(goals=AlarmGoal.class), body=@Body(AlarmPlan.class)), @Plan(trigger=@Trigger(goals={PlaySongGoal.class, NotifyGoal.class}), body=@Body(PlaySongPlan.class)), @Plan(trigger=@Trigger(goals=NotifyGoal.class), body=@Body(BeepPlan.class)), @Plan(trigger=@Trigger(factaddeds="alarms", factremoveds="alarms"), body=@Body(SyncSettingsAlarmsPlan.class)) }) @RequiredServices({
@RequiredServices(@RequiredService(name="targetser", type=ITargetAnnouncementService.class, multiple=true)) @Plans({ @Plan(trigger=@Trigger(goals=CarryBDI.CarryOre.class), body=@Body(CarryOrePlan.class)), @Plan(trigger=@Trigger(factaddeds="movecapa.mytargets"), body=@Body(InformNewTargetPlan.class)) }) public class CarryBDI extends BaseBDI implements ICarryService
@Agent @Goals(@Goal(clazz=StampGoal.class)) @RequiredServices(@RequiredService(name="stampser", type=IStampService.class, binding=@Binding(scope=RequiredServiceInfo.SCOPE_PLATFORM))) @Plans(@Plan(trigger=@Trigger(goals=StampGoal.class), body=@Body(service=@ServicePlan(name="stampser")))) public class WorkpieceBDI { @AgentBody public void body(IInternalAccess agent) { agent.getComponentFeature(IBDIAgentFeature.class).dispatchTopLevelGoal(new StampGoal(agent.getComponentIdentifier(), "date: "+System.currentTimeMillis())).get(); } }
body=@Body(ComponentPlanAgent.class)))
@Plan(trigger=@Trigger(goals={MovementCapability.Move.class, MovementCapability.Missionend.class}), body=@Body(MoveToLocationPlan.class)), @Plan(trigger=@Trigger(goals=MovementCapability.WalkAround.class), body=@Body(RandomWalkPlan.class)) }) @RequiredServices(@RequiredService(name="clockser", type=IClockService.class, binding=@Binding(scope=RequiredServiceInfo.SCOPE_PLATFORM)))
@Agent @Plans( @Plan(trigger=@Trigger(goals=CleanerBDI.PerformLookForWaste.class), body=@Body(LeastSeenWalkPlan.class)), @Plan(trigger=@Trigger(goals={CleanerBDI.QueryWastebin.class, CleanerBDI.QueryChargingStation.class}), body=@Body(ExploreMapPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.PerformPatrol.class), body=@Body(PatrolPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.AchieveCleanup.class), body=@Body(CleanUpWastePlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.AchievePickupWaste.class), body=@Body(PickUpWastePlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.AchieveDropWaste.class), body=@Body(DropWastePlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.MaintainBatteryLoaded.class), body=@Body(LoadBatteryPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.AchieveMoveTo.class), body=@Body(MoveToLocationPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.PerformMemorizePositions.class), body=@Body(MemorizePositionsPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.PickupWasteAction.class), priority=1, body=@Body(LocalPickUpWasteActionPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.DropWasteAction.class), priority=1, body=@Body(LocalDropWasteActionPlan.class)), @Plan(trigger=@Trigger(goals=CleanerBDI.GetVisionAction.class), priority=1, body=@Body(LocalGetVisionActionPlan.class)) }) @Description("<h1>Cleaner Robot Agent</h1>")
@Plans(@Plan(trigger=@Trigger(goals={MovementCapa.Move.class}), body=@Body(MoveToLocationPlan.class))) @RequiredServices(@RequiredService(name="clockser", type=IClockService.class, binding=@Binding(scope=RequiredServiceInfo.SCOPE_PLATFORM))) public class MovementCapa implements IEnvAccess
@Plan(trigger=@Trigger(goals=FireBrigadeBDI.ExtinguishFire.class), body=@Body(ExtinguishFirePlan.class)), @Plan(trigger=@Trigger(goals=FireBrigadeBDI.ClearChemicals.class), body=@Body(ClearChemicalsPlan.class)), @Plan(trigger=@Trigger(goals=FireBrigadeBDI.GoHome.class), body=@Body(MoveToLocationPlan.class)) }) @Configurations({@Configuration(name="do_nothing"), @Configuration(name="default")})
@Plan(body=@Body(ClearBlocksPlan.class), trigger=@Trigger(goals=BlocksworldBDI.ClearGoal.class)), @Plan(body=@Body(StackBlocksPlan.class), trigger=@Trigger(goals=BlocksworldBDI.StackGoal.class)), @Plan(body=@Body(ConfigureBlocksPlan.class), trigger=@Trigger(goals=BlocksworldBDI.ConfigureGoal.class)), @Plan(body=@Body(BenchmarkPlan.class)) }) @RequiredServices(@RequiredService(name="clock", type=IClockService.class, binding=@Binding(scope=RequiredServiceInfo.SCOPE_PLATFORM)))