View Javadoc

1   package nl.tudelft.goal.unreal.translators;
2   
3   import nl.tudelft.goal.unreal.messages.BotParametersKey;
4   import nl.tudelft.goal.unreal.util.EnvironmentUtil;
5   import eis.eis2java.exception.TranslationException;
6   import eis.eis2java.translation.Parameter2Java;
7   import eis.iilang.Identifier;
8   import eis.iilang.Parameter;
9   
10  public class BotParametersKeyTranslator implements Parameter2Java<BotParametersKey> {
11  
12  	@Override
13  	public BotParametersKey translate(Parameter p) throws TranslationException {
14  
15  		if (!(p instanceof Identifier)) {
16  			String message = String.format("%s is not a identifier.", p);
17  			throw new TranslationException(message);
18  		}
19  
20  		String id = ((Identifier) p).getValue();
21  
22  		for (BotParametersKey k : BotParametersKey.values()) {
23  			if (k.getKey().equals(id)) {
24  				return k;
25  			}
26  		}
27  		
28  		String message = "%s is not a valid key. Valid keys are: %s.";
29  		message = String.format(message, id, EnvironmentUtil.listValid(BotParametersKey.class));
30  		
31  		throw new TranslationException(message);
32  
33  	}
34  
35  	@Override
36  	public Class<BotParametersKey> translatesTo() {
37  		return BotParametersKey.class;
38  	}
39  
40  }