package net.sf.arianne.marboard.client.core;
import marauroa.common.game.RPObject;
import net.sf.arianne.marboard.client.entity.Entity;
import net.sf.arianne.marboard.client.entity.meta.User;
import net.sf.arianne.marboard.client.entity.shape.Dot;
import net.sf.arianne.marboard.client.entity.shape.Oval;
import net.sf.arianne.marboard.client.entity.shape.Rectangle;
import net.sf.arianne.marboard.client.entity.shape.StraightLine;
import org.apache.log4j.Logger;
/**
* creates entities based on RPObjects
*
* @author hendrik
*/
public class EntityFactory {
private static Logger logger = Logger.getLogger(EntityFactory.class);
/**
* creates a new entity
*
* @param rpobject RPObject to convert
* @return entity
*/
public static Entity create(RPObject rpobject) {
String rpclass = rpobject.getRPClass().getName();
if (rpclass.equals("user")) {
return new User(rpobject);
} else if (rpclass.equals("dot")) {
return new Dot(rpobject);
} else if (rpclass.equals("rectangle")) {
return new Rectangle(rpobject);
} else if (rpclass.equals("straight_line")) {
return new StraightLine(rpobject);
} else if (rpclass.equals("oval")) {
return new Oval(rpobject);
} else {
logger.error("Unknown Entity class " + rpclass + ": " + rpobject);
return new Entity(rpobject);
}
}
}