View Javadoc

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