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.zone.Zone;
/**
* Translates {@link Zone} into a list of {@link Parameter} specifying the navpoint id, name, location and a list of
* neighbour names.
*/
public class ZoneTranslator implements Java2Parameter<Zone> {
@Override
public Parameter[] translate(Zone zone) throws TranslationException {
List<Parameter> params = new ArrayList<>(5);
params.add(new Numeral(zone.getId()));
params.add(new Identifier(zone.getName()));
params.add(new Numeral(zone.getLocation().getX()));
params.add(new Numeral(zone.getLocation().getY()));
ParameterList neighbours = new ParameterList();
for (Zone neighbour : zone.getNeighbours()) {
neighbours.add(new Identifier(neighbour.getName()));
}
params.add(neighbours);
return params.toArray(new Parameter[params.size()]);
}
@Override
public Class<? extends Zone> translatesFrom() {
return Zone.class;
}
}