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.UnrealIdTranslator;
17 import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.ItemTranslator;
18 import cz.cuni.amis.utils.NullCheck;
19
20 @AgentScoped
21 public class UT2004Parser extends YylexParser {
22
23 @Inject
24 public UT2004Parser(UnrealIdTranslator unrealIdTranslator, ItemTranslator itemTranslator,
25 IWorldReaderProvider readerProvider, IUT2004Yylex yylex, @Nullable IYylexObserver yylexObserver,
26 IComponentBus bus, IAgentLogger logger) throws CommunicationException {
27 super(readerProvider, yylex, yylexObserver, bus, logger);
28
29 NullCheck.check(unrealIdTranslator, "unrealIdTranslator");
30
31 yylex.setTranslator(unrealIdTranslator);
32
33 NullCheck.check(itemTranslator, "itemTranslator");
34
35 yylex.setItemTranslator(itemTranslator);
36
37 if (logger.getAgentId() instanceof TeamedAgentId) {
38 yylex.setTeamId(((TeamedAgentId)logger.getAgentId()).getTeamId());
39 }
40 }
41
42
43
44
45
46
47
48
49
50 }