1 package nl.tudelft.goal.unreal.translators; 2 3 import java.util.Map.Entry; 4 import java.util.logging.Level; 5 6 import nl.tudelft.goal.unreal.messages.BotParameters; 7 import nl.tudelft.goal.unreal.messages.BotParametersKey; 8 import nl.tudelft.goal.unreal.messages.ParameterMap; 9 import nl.tudelft.goal.ut2004.util.Skin; 10 import nl.tudelft.goal.ut2004.util.Team; 11 import cz.cuni.amis.pogamut.base3d.worldview.object.Location; 12 import cz.cuni.amis.pogamut.base3d.worldview.object.Rotation; 13 import eis.eis2java.exception.TranslationException; 14 import eis.eis2java.translation.Parameter2Java; 15 import eis.eis2java.translation.Translator; 16 import eis.iilang.Identifier; 17 import eis.iilang.Parameter; 18 19 public class BotParametersTranslator implements Parameter2Java<BotParameters> { 20 21 @Override 22 public BotParameters translate(Parameter parameter) throws TranslationException { 23 Translator t = Translator.getInstance(); 24 25 ParameterMap parameterMap = t.translate2Java(parameter, ParameterMap.class); 26 27 BotParameters parameters = new BotParameters(); 28 29 for (Entry<Identifier, Parameter> entry : parameterMap.entrySet()) { 30 BotParametersKey key = t.translate2Java(entry.getKey(), BotParametersKey.class); 31 Parameter value = entry.getValue(); 32 33 switch (key) { 34 case LEADTARGET: 35 parameters.setShouldLeadTarget(t.translate2Java(value, Boolean.class)); 36 break; 37 case LOGLEVEL: 38 parameters.setLogLevel(t.translate2Java(value, Level.class)); 39 break; 40 case SKILL: 41 parameters.setSkill(t.translate2Java(value, Integer.class)); 42 break; 43 case SKIN: 44 parameters.setSkin(t.translate2Java(value, Skin.class)); 45 break; 46 case STARTLOCATION: 47 parameters.setInitialLocation(t.translate2Java(value, Location.class)); 48 break; 49 case STARTROTATION: 50 parameters.setInitialRotation(t.translate2Java(value, Rotation.class)); 51 break; 52 case TEAM: 53 parameters.setTeam(t.translate2Java(value, Team.class)); 54 break; 55 case NAME: 56 parameters.setAgentId(t.translate2Java(value, String.class)); 57 break; 58 } 59 } 60 61 return parameters; 62 63 } 64 65 @Override 66 public Class<BotParameters> translatesTo() { 67 return BotParameters.class; 68 } 69 70 }