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