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