package ilarkesto.mda.generator; import ilarkesto.base.Str; import ilarkesto.mda.model.Node; import ilarkesto.mda.model.NodeTypes; import java.util.List; import com.google.gwt.user.client.rpc.AsyncCallback; public class GwtServiceAsyncInterfaceGenerator extends AJavaClassGenerator implements NodeTypes { private Node module; public GwtServiceAsyncInterfaceGenerator(String srcPath, Node module) { super(srcPath, true); this.module = module; } @Override protected void printCode(JavaPrinter out) { out.package_(getPackageName()); out.beginInterface(module.getValue() + "ServiceAsync", null); List<Node> calls = module.getChildrenByTypeRecursive(ServiceCall); for (Node call : calls) { List<String> params = getParameterTypesAndNames(call, "String"); params.add(0, "int conversationNumber"); params.add(AsyncCallback.class.getName() + "<" + getPackageName() + ".DataTransferObject> callback"); out.interfaceMethod("void", Str.lowercaseFirstLetter(call.getValue()), params); } out.endInterface(); } private String getPackageName() { return module.getValue().toLowerCase() + ".client"; } }