1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package nl.tudelft.goal.emohawk.translators;
21
22 import java.util.Arrays;
23
24 import nl.tudelft.goal.EIS2Java.exception.TranslationException;
25 import nl.tudelft.goal.EIS2Java.translation.Java2Parameter;
26 import nl.tudelft.goal.EIS2Java.translation.Parameter2Java;
27 import nl.tudelft.goal.EIS2Java.translation.Translator;
28 import cz.cuni.amis.pogamut.emohawk.agent.module.sensomotoric.AnimType;
29 import cz.cuni.amis.pogamut.emohawk.agent.module.sensomotoric.EmoticonType;
30 import eis.iilang.Identifier;
31 import eis.iilang.Parameter;
32
33 public class AnimTypeTranslator implements Java2Parameter<AnimType>, Parameter2Java<AnimType> {
34
35 @Override
36 public AnimType translate(Parameter parameter) throws TranslationException {
37 String animTypeString = Translator.getInstance().translate2Java(parameter, String.class);
38
39 try {
40 return AnimType.valueOf(animTypeString);
41 } catch (IllegalArgumentException e) {
42 String message = String.format("%s was not a skin. Expected one of %s.", animTypeString,
43 Arrays.toString(EmoticonType.values()));
44 throw new TranslationException(message, e);
45 }
46 }
47
48 @Override
49 public Class<AnimType> translatesTo() {
50 return AnimType.class;
51 }
52
53 @Override
54 public Parameter[] translate(AnimType argument) throws TranslationException {
55 return new Parameter[] { new Identifier(argument.name()) };
56 }
57
58 @Override
59 public Class<? extends AnimType> translatesFrom() {
60 return AnimType.class;
61 }
62
63 }