branch develop updated (7db9b2e -> f25440a)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository i18n. See https://gitlab.nuiton.org/nuiton/i18n.git from 7db9b2e Split failsIfWarning flag into two new flags failsIfAnyKeyMissingValue and failsIfAnyKeyMissingInBundle Fixes #4009 new f25440a Improve generateI18nEnumHelper by adding a way to generate also a description i18n key Fixes #4010 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit f25440af70c7b7d401e5e3949da95600cd140b4f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Sep 1 17:15:26 2016 +0200 Improve generateI18nEnumHelper by adding a way to generate also a description i18n key Fixes #4010 Summary of changes: .../i18n/plugin/GenerateI18nEnumHelperMojo.java | 109 +++++++++++++++++---- 1 file changed, 92 insertions(+), 17 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository i18n. See https://gitlab.nuiton.org/nuiton/i18n.git commit f25440af70c7b7d401e5e3949da95600cd140b4f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Sep 1 17:15:26 2016 +0200 Improve generateI18nEnumHelper by adding a way to generate also a description i18n key Fixes #4010 --- .../i18n/plugin/GenerateI18nEnumHelperMojo.java | 109 +++++++++++++++++---- 1 file changed, 92 insertions(+), 17 deletions(-) diff --git a/i18n-maven-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateI18nEnumHelperMojo.java b/i18n-maven-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateI18nEnumHelperMojo.java index 442a91f..cd4d793 100644 --- a/i18n-maven-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateI18nEnumHelperMojo.java +++ b/i18n-maven-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateI18nEnumHelperMojo.java @@ -34,6 +34,8 @@ import java.io.BufferedWriter; import java.io.File; import java.util.Date; import java.util.List; +import java.util.Set; +import java.util.TreeSet; /** * Generate a i18n enum class helper. @@ -74,9 +76,42 @@ public class GenerateI18nEnumHelperMojo extends AbstractI18nMojo { /** * List of enums to scan to generate i18n keys. + * + * Example with enum {@code enum E { A,B }}, will generate i18n keys: + * <ul> + * <li>prefixA</li> + * <li>prefixB</li> + * </ul> + */ + @Parameter(property = "i18n.enumsWithLabel", required = true) + protected List<String> enumsWithLabel; + + /** + * List of enums to scan to generate i18n keys plus description keys. + * + * Example with enum {@code enum E { A,B }}, will generate i18n keys: + * <ul> + * <li>prefixA</li> + * <li>prefixA.description</li> + * <li>prefixB</li> + * <li>prefixB.description</li> + * </ul> + */ + @Parameter(property = "i18n.enumsWithLabelAndDescription", required = true) + protected List<String> enumsWithLabelAndDescription; + + /** + * List of enums to scan to generate i18n description keys. + * + * Example with enum {@code enum E { A,B }}, will generate i18n keys: + * <ul> + * <li>prefixA.description</li> + * <li>prefixB.description</li> + * </ul> */ - @Parameter(property = "i18n.enums", required = true) - protected List<String> enums; + @Parameter(property = "i18n.enumsWithLabelAndDescription", required = true) + protected List<String> enumsWithDescription; + @Override protected void doAction() throws Exception { @@ -108,31 +143,70 @@ public class GenerateI18nEnumHelperMojo extends AbstractI18nMojo { writer.write("\n"); writer.write("public class " + className + " {\n"); writer.write("\n"); - writer.write(" public static <E extends Enum<E>> String getLabel(E e) {\n"); - writer.write(" return t(getLabelKey(e));\n"); - writer.write(" }\n"); - writer.write("\n"); - writer.write(" public static <E extends Enum<E>> String getLabel(Locale locale, E e) {\n"); - writer.write(" return l(locale, getLabelKey(e));\n"); - writer.write(" }\n"); - writer.write("\n"); - writer.write(" protected static <E extends Enum<E>> String getLabelKey(E e) {\n"); - writer.write(" return \"" + prefix + "\" + e.getClass().getName() + \".\" + e.name();\n"); - writer.write(" }\n"); - writer.write("\n"); + if (!(enumsWithLabel.isEmpty() && enumsWithLabelAndDescription.isEmpty())) { + writer.write(" public static <E extends Enum<E>> String getLabel(E e) {\n"); + writer.write(" return t(getLabelKey(e));\n"); + writer.write(" }\n"); + writer.write("\n"); + + writer.write(" public static <E extends Enum<E>> String getLabel(Locale locale, E e) {\n"); + writer.write(" return l(locale, getLabelKey(e));\n"); + writer.write(" }\n"); + writer.write("\n"); + writer.write(" protected static <E extends Enum<E>> String getLabelKey(E e) {\n"); + writer.write(" return \"" + prefix + "\" + e.getClass().getName() + \".\" + e.name();\n"); + writer.write(" }\n"); + writer.write("\n"); + } + if (!(enumsWithDescription.isEmpty() && enumsWithLabelAndDescription.isEmpty())) { + writer.write(" public static <E extends Enum<E>> String getDescription(E e) {\n"); + writer.write(" return t(getDescriptionKey(e));\n"); + writer.write(" }\n"); + writer.write("\n"); + + writer.write(" public static <E extends Enum<E>> String getDescription(Locale locale, E e) {\n"); + writer.write(" return l(locale, getDescriptionKey(e));\n"); + writer.write(" }\n"); + writer.write("\n"); + writer.write(" protected static <E extends Enum<E>> String getDescriptionKey(E e) {\n"); + writer.write(" return \"" + prefix + "\" + e.getClass().getName() + \".\" + e.name() + \".description\";\n"); + writer.write(" }\n"); + writer.write("\n"); + } writer.write(" static {\n\n"); - for (String anEnumType : enums) { + Set<String> allEnums = new TreeSet<>(); + allEnums.addAll(enumsWithLabel); + allEnums.addAll(enumsWithDescription); + allEnums.addAll(enumsWithLabelAndDescription); + + Set<String> allLabelEnums = new TreeSet<>(); + allLabelEnums.addAll(enumsWithLabel); + allLabelEnums.addAll(enumsWithLabelAndDescription); + + Set<String> allDescriptionEnums = new TreeSet<>(); + allDescriptionEnums.addAll(enumsWithDescription); + allDescriptionEnums.addAll(enumsWithLabelAndDescription); + + for (String anEnumType : allEnums) { Class aClass = Class.forName(anEnumType); + getLog().info("Scan enum: " + aClass.getName()); if (!aClass.isEnum()) { throw new IllegalStateException("Type " + aClass.getName() + " is not an enum."); } - getLog().info("Scan enum: " + aClass.getName()); + boolean generateLabel = allLabelEnums.contains(anEnumType); + boolean generateDescription = allDescriptionEnums.contains(anEnumType); + for (Object o : aClass.getEnumConstants()) { Enum e = (Enum) o; - writer.write(" n(\"" + prefix + aClass.getName() + "." + e.name() + "\");\n"); + if (generateLabel) { + writer.write(" n(\"" + prefix + aClass.getName() + "." + e.name() + "\");\n"); + } + if (generateDescription) { + writer.write(" n(\"" + prefix + aClass.getName() + "." + e.name() + ".description\");\n"); + } } writer.write("\n"); @@ -147,4 +221,5 @@ public class GenerateI18nEnumHelperMojo extends AbstractI18nMojo { } } + } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm