package ilarkesto.mda.generator; import ilarkesto.mda.model.Node; import ilarkesto.mda.model.NodeTypes; import java.util.Arrays; public class GwtEventHandlerGenerator extends AJavaClassGenerator implements NodeTypes { private Node event; private Node package_; private Node gwtModule; public GwtEventHandlerGenerator(String srcPath, Node event) { super(srcPath, true); this.event = event; package_ = event.getSuperparentByType(Package); assert package_ != null; gwtModule = package_.getSuperparentByType(GwtModule); assert gwtModule != null; } @Override protected void printCode(JavaPrinter out) { out.package_(getPackageName()); out.beginInterface(event.getValue() + "Handler", null); out.abstractMethod(null, "on" + event.getValue(), Arrays.asList(event.getValue() + "Event event")); out.endInterface(); } private String getPackageName() { String packageName = getBasePackageName() + "." + package_.getValue(); return packageName; } private String getBasePackageName() { return gwtModule.getValue().toLowerCase() + ".client"; } }