package ilarkesto.mda.legacy.generator; import ilarkesto.mda.legacy.model.ActionModel; import ilarkesto.mda.legacy.model.ParameterModel; public class GwtActionTemplateGenerator extends AClassGenerator { private ActionModel action; public GwtActionTemplateGenerator(ActionModel action) { super(); this.action = action; } @Override protected final String getName() { return action.getName() + "Action"; } @Override protected final String getPackage() { return action.getPackageName().replace(".server", ".client"); } @Override protected final boolean isInterface() { return false; } @Override protected void writeContent() { if (!action.getParameters().isEmpty()) writeConstructor(); } private void writeConstructor() { ln(); StringBuilder sig = new StringBuilder(); { boolean first = true; for (ParameterModel parameter : action.getParameters()) { if (first) { first = false; } else { sig.append(", "); } sig.append(parameter.getType().replace(".server", ".client")).append(" ").append(parameter.getName()); } } ln(" public " + getName() + "(" + sig + ") {"); StringBuilder params = new StringBuilder(); { boolean first = true; for (ParameterModel parameter : action.getParameters()) { if (first) { first = false; } else { params.append(", "); } params.append(parameter.getName()); } } ln(" super(" + params + ");"); ln(" }"); } @Override protected final String getSuperclass() { return "G" + action.getName() + "Action"; } @Override protected boolean isAbstract() { return false; } @Override protected boolean isOverwrite() { return false; } }