View Javadoc

1   package nl.tudelft.goal.ut2004.translators;
2   
3   
4   import cz.cuni.amis.pogamut.base3d.worldview.object.Location;
5   import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
6   import eis.iilang.Function;
7   import eis.iilang.Parameter;
8   import nl.tudelft.goal.EIS2Java.exception.TranslationException;
9   import nl.tudelft.goal.EIS2Java.translation.Parameter2Java;
10  import nl.tudelft.goal.EIS2Java.translation.Translator;
11  import nl.tudelft.goal.ut2004.selector.ALocation;
12  import nl.tudelft.goal.ut2004.selector.ClosestEnemy;
13  import nl.tudelft.goal.ut2004.selector.ClosestFriendly;
14  import nl.tudelft.goal.ut2004.selector.ClosestFriendlyWithLinkGun;
15  import nl.tudelft.goal.ut2004.selector.ContextSelector;
16  import nl.tudelft.goal.ut2004.selector.EnemyFlagCarrier;
17  import nl.tudelft.goal.ut2004.selector.FriendlyFlagCarrier;
18  import nl.tudelft.goal.ut2004.selector.APlayer;
19  
20  public class SelectorTranslator implements Parameter2Java<ContextSelector> {
21  
22  	@Override
23  	public ContextSelector translate(Parameter parameter) throws TranslationException {
24  	
25  		if(parameter instanceof Function){
26  			Location location = Translator.getInstance().translate2Java(parameter, Location.class);
27  			return new  ALocation(location);
28  		}
29  		
30  		String selectorString = Translator.getInstance().translate2Java(parameter, String.class);
31  
32  		if (selectorString.equals("closestEnemy")) {
33  			return new ClosestEnemy();
34  		} else if (selectorString.equals("closestFriendly")) {
35  			return new ClosestFriendly();
36  		} else if (selectorString.equals("closestFriendlyWithLinkGun")){
37  			return new ClosestFriendlyWithLinkGun();
38  		} else if (selectorString.equals("enemyFlagCarrier")) {
39  			return new EnemyFlagCarrier();
40  		} else if (selectorString.equals("friendlyFlagCarrier")) {
41  			return new FriendlyFlagCarrier();
42  		} 
43  		
44  		UnrealId id = Translator.getInstance().translate2Java(parameter, UnrealId.class);
45  		
46  		return new APlayer(id);
47  	}
48  
49  	@Override
50  	public Class<ContextSelector> translatesTo() {
51  		return ContextSelector.class;
52  	}
53  
54  }