package ilarkesto.mda.generator;
import ilarkesto.mda.model.Node;
import ilarkesto.mda.model.NodeTypes;
public class GwtComponentTemplateGenerator extends AJavaClassGenerator implements NodeTypes {
private Node component;
private Node package_;
private Node gwtModule;
public GwtComponentTemplateGenerator(String srcPath, Node component) {
super(srcPath, false);
this.component = component;
package_ = component.getSuperparentByType(Package);
assert package_ != null;
gwtModule = package_.getSuperparentByType(GwtModule);
assert gwtModule != null;
}
@Override
protected void printCode(JavaPrinter out) {
out.package_(getPackageName());
out.beginClass(getClassName(), getSuperclassName(), null);
out.endClass();
}
private String getSuperclassName() {
return "G" + component.getValue();
}
private String getClassName() {
return component.getValue();
}
private String getPackageName() {
String packageName = getBasePackageName() + "." + package_.getValue();
return packageName;
}
private String getBasePackageName() {
return gwtModule.getValue().toLowerCase() + ".client";
}
}