package nl.tudelft.bw4t.server.eis.translators; import java.util.ArrayList; import java.util.List; import eis.eis2java.exception.TranslationException; import eis.eis2java.translation.Java2Parameter; import eis.iilang.Identifier; import eis.iilang.Numeral; import eis.iilang.Parameter; import eis.iilang.ParameterList; import nl.tudelft.bw4t.server.model.epartners.EPartner; import nl.tudelft.bw4t.server.model.robots.handicap.IRobot; /** * Translates {@link EPartner} objects into parameters that can be used in eis. */ public class EPartnerTranslator implements Java2Parameter<EPartner> { @Override public Parameter[] translate(EPartner o) throws TranslationException { Parameter[] params = new Parameter[4]; params[0] = new Numeral(o.getId()); params[1] = new Identifier(o.getName()); final IRobot holder = o.getHolder(); if (holder == null) { params[2] = new Numeral(-1); } else { params[2] = new Numeral(holder.getId()); } List<Parameter> types = new ArrayList<>(o.getTypeList().size()); for (String type : o.getTypeList()) { types.add(new Identifier(type)); } params[3] = new ParameterList(types); return params; } @Override public Class<? extends EPartner> translatesFrom() { return EPartner.class; } }