1 package cz.cuni.amis.pogamut.base.agent.impl;
2
3 import com.google.inject.Inject;
4
5 import cz.cuni.amis.pogamut.base.agent.IAgentId;
6 import cz.cuni.amis.pogamut.base.agent.IEmbodiedAgent;
7 import cz.cuni.amis.pogamut.base.communication.command.IAct;
8 import cz.cuni.amis.pogamut.base.communication.worldview.IWorldView;
9 import cz.cuni.amis.pogamut.base.component.bus.IComponentBus;
10 import cz.cuni.amis.pogamut.base.utils.guice.AgentScoped;
11 import cz.cuni.amis.pogamut.base.utils.logging.IAgentLogger;
12 import cz.cuni.amis.utils.NullCheck;
13
14 @AgentScoped
15 public abstract class AbstractEmbodiedAgent<WORLD_VIEW extends IWorldView, ACT extends IAct> extends AbstractGhostAgent<WORLD_VIEW, ACT> implements IEmbodiedAgent {
16
17 private ACT act;
18
19 @Inject
20 public AbstractEmbodiedAgent(IAgentId agentId, IComponentBus bus, IAgentLogger logger, WORLD_VIEW worldView, ACT act) {
21 super(agentId, bus, logger, worldView, act);
22 this.act = act;
23 NullCheck.check(this.act, "act");
24 addDependency(act);
25 }
26
27 @Override
28 public ACT getAct() {
29 return act;
30 }
31
32 }