View Javadoc

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   * Example: primary<br>
12   * Example: secondary
13   * 
14   * 
15   * @author mpkorstanje
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  }