1 package nl.tudelft.goal.ut3.translators;
2
3 import nl.tudelft.goal.unreal.util.EnvironmentUtil;
4 import cz.cuni.amis.pogamut.ut2004.communication.messages.UT2004ItemType.UT2004Group;
5 import cz.cuni.amis.pogamut.ut3.communication.messages.UT3ItemType.UT3Group;
6 import eis.eis2java.exception.TranslationException;
7 import eis.eis2java.translation.Java2Parameter;
8 import eis.eis2java.translation.Parameter2Java;
9 import eis.eis2java.translation.Translator;
10 import eis.iilang.Identifier;
11 import eis.iilang.Parameter;
12
13 public class UT3GroupTranslator implements Java2Parameter<UT3Group>,
14 Parameter2Java<UT3Group> {
15
16 @Override
17 public Parameter[] translate(UT3Group o) throws TranslationException {
18 return new Parameter[] { new Identifier(o.name().toLowerCase()) };
19 }
20
21 @Override
22 public Class<? extends UT3Group> translatesFrom() {
23 return UT3Group.class;
24 }
25
26 @Override
27 public UT3Group translate(Parameter parameter) throws TranslationException {
28 String itemTypeString = Translator.getInstance().translate2Java(
29 parameter, String.class);
30
31 try {
32 return UT3Group.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<UT3Group> translatesTo() {
44 return UT3Group.class;
45 }
46
47 }