1 package nl.tudelft.goal.ut2004.translators;
2
3 import eis.iilang.Identifier;
4 import eis.iilang.Parameter;
5 import nl.tudelft.goal.EIS2Java.exception.TranslationException;
6 import nl.tudelft.goal.EIS2Java.translation.Java2Parameter;
7 import nl.tudelft.goal.EIS2Java.translation.Parameter2Java;
8 import nl.tudelft.goal.EIS2Java.translation.Translator;
9 import nl.tudelft.goal.ut2004.messages.FireMode;
10
11
12
13
14
15
16
17
18 public class FireModeTranslator implements Parameter2Java<FireMode>, Java2Parameter<FireMode> {
19
20 @Override
21 public FireMode translate(Parameter parameter) throws TranslationException {
22 String string = Translator.getInstance().translate2Java(parameter, String.class);
23
24 try {
25 return FireMode.valueOfIgnoreCase(string);
26 } catch (IllegalArgumentException e) {
27 String message = String.format("%s was not a fire mode. Expected on off %s.", string, FireMode.values());
28 throw new TranslationException(message, e);
29 }
30 }
31
32 @Override
33 public Class<FireMode> translatesTo() {
34 return FireMode.class;
35 }
36
37 @Override
38 public Parameter[] translate(FireMode o) throws TranslationException {
39 return new Parameter[]{new Identifier(o.name().toLowerCase())};
40 }
41
42 @Override
43 public Class<? extends FireMode> translatesFrom() {
44 return FireMode.class;
45 }
46
47 }