Author: tchemit Date: 2010-11-18 15:26:45 +0100 (Thu, 18 Nov 2010) New Revision: 990 Url: http://nuiton.org/repositories/revision/eugene/990 Log: Evolution #1062: Add I18n method in JavageneratorUtil Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2010-11-18 14:26:29 UTC (rev 989) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2010-11-18 14:26:45 UTC (rev 990) @@ -43,7 +43,9 @@ import org.nuiton.eugene.models.object.ObjectModelParameter; import org.nuiton.eugene.models.object.ObjectModelTransformer; import org.nuiton.eugene.models.object.ObjectModelType; +import org.nuiton.i18n.I18n; +import java.beans.Introspector; import java.net.URL; import java.util.Collection; import java.util.Collections; @@ -480,7 +482,7 @@ /** * clone a given attribute into a classifier of the output model * - * @param attribute the original attribute + * @param source the original attribute * @param destination classifier where the clone will be added * @param cloneDocumentation flag to add documentation if some found in model * @param modifiers extra modifiers @@ -738,4 +740,46 @@ return fileLocation; } + /** + * Generates a static block with I18n keys for each navigable attributes + * prefixed by the given {@code i18nPrefix}. + * + * @param input the input classifier + * @param output the output classifier (to generate) + * @param i18nPrefix the i81n prefix to use + */ + protected void generateI18nBlock(ObjectModelClassifier input, + ObjectModelClassifier output, + String i18nPrefix) { + + ObjectModelOperation block = + addBlock(output, ObjectModelModifier.STATIC); + + StringBuilder buffer = new StringBuilder(300); + addI18n(buffer, i18nPrefix, Introspector.decapitalize(input.getName())); + boolean useI18n = false; + for (ObjectModelAttribute attr : input.getAttributes()) { + //TC-20100225 only treate navigable relations + if (attr.isNavigable()) { + useI18n=true; + addI18n(buffer, + i18nPrefix, + Introspector.decapitalize(attr.getName()) + ); + } + } + if (useI18n) { + addImport(output, I18n.class); + } + setOperationBody(block, buffer.toString()); + } + + protected void addI18n(StringBuilder buffer, String i18nPrefix, + String suffix) { + buffer.append("\n I18n.n_(\""); + buffer.append(i18nPrefix); + buffer.append(suffix); + buffer.append("\");"); + } + }
participants (1)
-
tchemit@users.nuiton.org