package ilarkesto.mda.legacy.generator; import ilarkesto.base.Str; import ilarkesto.mda.legacy.model.ApplicationModel; import ilarkesto.mda.legacy.model.EntityModel; import java.util.Collection; public class GwtDataTransferObjectGenerator extends AClassGenerator { private ApplicationModel application; private Collection<EntityModel> entities; public void generate(ApplicationModel application, Collection<EntityModel> entities) { this.application = application; this.entities = entities; generate(); } @Override protected String getName() { return "GDataTransferObject"; } @Override protected String getPackage() { return application.getPackageName().replace(".server", ".client"); } @Override protected boolean isInterface() { return false; } @Override protected boolean isOverwrite() { return true; } @Override protected String getSuperclass() { return getPackage() + ".ADataTransferObject"; } @Override protected void writeContent() { for (EntityModel entity : entities) { String name = entity.getName(); String type = entity.getPackageName().replace(".server.", ".client.") + "." + name; String serverType = entity.getPackageName() + "." + name; String nameLower = Str.lowercaseFirstLetter(name); String mapVar = nameLower + "s"; ln(); comment(name); ln(); ln(" private Map<String, Map>", mapVar + ";"); ln(); ln(" public final Collection<Map> get" + name + "s() {"); ln(" return " + mapVar + " == null ? null : " + mapVar + ".values();"); ln(" }"); ln(); ln(" public final boolean contains" + name + "s() {"); ln(" return " + mapVar + " != null && !" + mapVar + ".isEmpty();"); ln(" }"); ln(); ln(" public synchronized final void add" + name + "(Map data) {"); ln(" if (" + mapVar + " == null) " + mapVar + " = new HashMap<String, Map>();"); ln(" String id = (String) data.get(\"id\");"); ln(" " + mapVar + ".put(id, data);"); ln(" }"); ln(); ln(" public final void add" + name + "s(List<Map> " + mapVar + ") {"); ln(" for (Map entity : " + mapVar + ") add" + name + " (entity);"); ln(" }"); } } }