* @param action the action to be executed
*/
@Override
protected void perform(User user, RPAction action) {
MarboardZone zone = user.getZone();
RPObjectParser parser = new RPObjectParser();
// split the shapes on the line boundary
String[] shapes = action.get("shapes").split("\r\n");
for (String shapeString : shapes) {
// parse the RPObject and add the shapes
RPObject object;
try {
object = parser.parse(shapeString);
Shape shape = (Shape) MarboardObjectFactory.getFactory().transform(object);
zone.add(shape);
} catch (ParseException e) {
// TODO: add error handling
logger.error(e, e);