1 package nl.tudelft.goal.unreal.translators;
2
3 import java.net.URI;
4 import java.util.Map.Entry;
5 import java.util.logging.Level;
6
7 import nl.tudelft.goal.unreal.messages.BotParametersList;
8 import nl.tudelft.goal.unreal.messages.Configuration;
9 import nl.tudelft.goal.unreal.messages.ConfigurationKey;
10 import nl.tudelft.goal.unreal.messages.ParameterMap;
11 import eis.eis2java.exception.TranslationException;
12 import eis.eis2java.translation.Parameter2Java;
13 import eis.eis2java.translation.Translator;
14 import eis.iilang.Identifier;
15 import eis.iilang.Parameter;
16
17 public class ConfigurationTranslator implements Parameter2Java<Configuration> {
18
19 @Override
20 public Configuration translate(Parameter parameter) throws TranslationException {
21 Translator t = Translator.getInstance();
22
23 ParameterMap parameterMap = t.translate2Java(parameter, ParameterMap.class);
24
25 Configuration configuration = new Configuration();
26
27 for (Entry<Identifier, Parameter> entry : parameterMap.entrySet()) {
28 ConfigurationKey key = t.translate2Java(entry.getKey(), ConfigurationKey.class);
29 Parameter value = entry.getValue();
30
31 switch (key) {
32 case BOTS:
33 configuration.setBots(t.translate2Java(value, BotParametersList.class));
34 break;
35 case BOT_SERVER:
36 configuration.setBotServer(t.translate2Java(value, URI.class));
37 break;
38 case LOGLEVEL:
39 configuration.setLogLevel(t.translate2Java(value, Level.class));
40 break;
41 case VISUALIZER_SERVER:
42 configuration.setVisualizer(t.translate2Java(value, URI.class));
43 break;
44 case CONTROL_SERVER:
45 configuration.setControlServer(t.translate2Java(value, URI.class));
46 break;
47 case BOT_CONTROLLER:
48 configuration.setBotControllerClass(t.translate2Java(value, Class.class));
49
50 }
51 }
52
53 return configuration;
54
55 }
56
57 @Override
58 public Class<Configuration> translatesTo() {
59 return Configuration.class;
60 }
61
62 }