1 package cz.cuni.amis.pogamut.ut2004.communication.parser;
2
3
4 import com.google.inject.Inject;
5 import com.google.inject.internal.Nullable;
6
7 import cz.cuni.amis.pogamut.base.communication.connection.IWorldReaderProvider;
8 import cz.cuni.amis.pogamut.base.communication.exception.CommunicationException;
9 import cz.cuni.amis.pogamut.base.communication.parser.impl.yylex.IYylexObserver;
10 import cz.cuni.amis.pogamut.base.communication.parser.impl.yylex.YylexParser;
11 import cz.cuni.amis.pogamut.base.component.bus.IComponentBus;
12 import cz.cuni.amis.pogamut.base.utils.guice.AgentScoped;
13 import cz.cuni.amis.pogamut.base.utils.logging.IAgentLogger;
14 import cz.cuni.amis.pogamut.multi.agent.ITeamId;
15 import cz.cuni.amis.pogamut.multi.agent.impl.TeamedAgentId;
16 import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemTypeTranslator;
17 import cz.cuni.amis.pogamut.ut2004.communication.messages.UnrealIdTranslator;
18 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.ItemPickedUp;
19 import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.ItemTranslator;
20 import cz.cuni.amis.utils.NullCheck;
21
22 @AgentScoped
23 public class UT2004Parser extends YylexParser {
24
25 @Inject
26 public UT2004Parser(UnrealIdTranslator unrealIdTranslator, ItemTranslator itemTranslator, ItemTypeTranslator itemTypeTranslator,
27 IWorldReaderProvider readerProvider, IUT2004Yylex yylex, @Nullable IYylexObserver yylexObserver,
28 IComponentBus bus, IAgentLogger logger) throws CommunicationException {
29 super(readerProvider, yylex, yylexObserver, bus, logger);
30
31 NullCheck.check(unrealIdTranslator, "unrealIdTranslator");
32
33 yylex.setTranslator(unrealIdTranslator);
34
35 NullCheck.check(itemTranslator, "itemTranslator");
36
37 yylex.setItemTranslator(itemTranslator);
38
39
40 NullCheck.check(itemTypeTranslator, "itemTypeTranslator");
41
42 yylex.setItemTypeTranslator(itemTypeTranslator);
43
44 if (logger.getAgentId() instanceof TeamedAgentId) {
45 yylex.setTeamId(((TeamedAgentId)logger.getAgentId()).getTeamId());
46 }
47 }
48
49
50
51
52
53
54
55
56
57 }