package ilarkesto.mda.generator; import ilarkesto.base.Str; import ilarkesto.mda.model.Node; import ilarkesto.mda.model.NodeTypes; public class GwtTextBundleGenerator extends AJavaClassGenerator implements NodeTypes { private Node bundle; private Node gwtModule; public GwtTextBundleGenerator(String srcPath, Node bundle) { super(srcPath, true); this.bundle = bundle; gwtModule = bundle.getSuperparentByType(GwtModule); assert gwtModule != null; } @Override protected void printCode(JavaPrinter out) { out.package_(getBasePackageName() + ".i18n"); out.beginClass(getClassName(), null, null); out.loggerByClassName(); for (Node text : bundle.getChildrenByType(Text)) { out.beginMethod("String", text.getValue(), null); String en = text.getChildValueByType(EN); if (Str.isBlank(en)) { out.returnStatement("null"); } else { out.returnStatement("\"" + Str.escapeEscapeSequences(en) + "\""); } out.endMethod(); } out.endClass(); } private String getClassName() { return "TextBundle" + bundle.getValue(); } private String getBasePackageName() { return gwtModule.getValue().toLowerCase() + ".client"; } }