View Javadoc

1   package nl.tudelft.goal.ut2004.translators;
2   
3   import nl.tudelft.goal.ut2004.messages.UnrealIdOrLocation;
4   import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
5   import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
6   import eis.eis2java.exception.TranslationException;
7   import eis.eis2java.translation.Parameter2Java;
8   import eis.eis2java.translation.Translator;
9   import eis.iilang.Parameter;
10   
11  public class UnrealIdOrLocationTranslator implements Parameter2Java<UnrealIdOrLocation> {
12  
13  	@Override
14  	public UnrealIdOrLocation translate(Parameter parameter) throws TranslationException {
15  
16  		TranslationException translationExceptionId;
17  		try {
18  			UnrealId id = Translator.getInstance().translate2Java(parameter, UnrealId.class);
19  			return new UnrealIdOrLocation(id);
20  		} catch (TranslationException e) {
21  			translationExceptionId = e;
22  		}
23  
24  		TranslationException translationExceptionLocation;
25  		try {
26  			Location location = Translator.getInstance().translate2Java(parameter, Location.class);
27  			return new UnrealIdOrLocation(location);
28  		} catch (TranslationException e) {
29  			translationExceptionLocation = e;
30  		}
31  
32  		String message = String.format("Could not translate to either UnrealId or Location. "
33  				+ "\nCause 1: %s\nCause 2: %s", translationExceptionId, translationExceptionLocation);
34  		throw new TranslationException(message);
35  
36  	}
37  
38  	@Override
39  	public Class<UnrealIdOrLocation> translatesTo() {
40  		return UnrealIdOrLocation.class;
41  	}
42  
43  }