This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository eugene. See http://git.nuiton.org/eugene.git commit a8217eebc039a6b88b8a1794a181376f0ffb8f2f Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 20 15:03:36 2015 +0200 Add an generic information on an attribute (SimpleJavaBeanWithNoInterfaceTransformer only\!) (fixes #3760) --- .../nuiton/eugene/java/JavaTemplatesTagValues.java | 25 ++++++++++++++++++++++ .../SimpleJavaBeanWithNoInterfaceTransformer.java | 19 ++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java index e11ebd9..104487f 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesTagValues.java @@ -24,6 +24,7 @@ package org.nuiton.eugene.java; import org.apache.commons.lang3.StringUtils; import org.nuiton.eugene.models.object.ObjectModel; +import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClassifier; import org.nuiton.eugene.models.object.ObjectModelPackage; import org.nuiton.eugene.models.tagvalue.TagValueDefinition; @@ -456,6 +457,18 @@ public class JavaTemplatesTagValues extends TagValueDefinitionProvider { public static final String TAG_SIMPLE_BEAN_WITH_NO_INTERFACE_DEFAULTS_CLASS_NAME_SUFFIX = "simpleBeanWithNoInterfaceDefaultsClassNameSuffix"; /** + * To add a generic to an attribute. + * + * @see #getSimpleBeanWithNoInterfaceAttributeGenericTagValue(ObjectModelAttribute) + * @since 3.0 + */ + @TagValueDefinition( + target = {ObjectModelAttribute.class}, + documentation = "To add a generic to an attribute.\n" + + "(only effective with simple bean generator)") + public static final String TAG_SIMPLE_BEAN_WITH_NO_INTERFACE_ATTRIBUTE_GENERIC = "simpleBeanWithNoInterfaceAttributeGeneric"; + + /** * Obtain the value of the {@link #TAG_BEAN_SUPER_CLASS} tag value on the given model or classifier. * * It will first look on the model, and then in the given classifier. @@ -721,4 +734,16 @@ public class JavaTemplatesTagValues extends TagValueDefinitionProvider { return value; } + /** + * Obtain the value of the {@link #TAG_SIMPLE_BEAN_WITH_NO_INTERFACE_ATTRIBUTE_GENERIC} tag value on the given attribute. + * + * @param attribute attribute to seek + * @return the none empty value of the found tag value or {@code null} if not found nor empty. + * @see #TAG_SIMPLE_BEAN_WITH_NO_INTERFACE_ATTRIBUTE_GENERIC + * @since 3.0 + */ + public String getSimpleBeanWithNoInterfaceAttributeGenericTagValue(ObjectModelAttribute attribute) { + String value = findTagValue(TAG_SIMPLE_BEAN_WITH_NO_INTERFACE_ATTRIBUTE_GENERIC, attribute); + return value; + } } diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java index 4734da7..e73eca3 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java @@ -689,6 +689,25 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr if (attributeType != null) { attrType = attributeClass.getPackageName() + "." + attributeType; } + String generic = getJavaTemplatesTagValues().getSimpleBeanWithNoInterfaceAttributeGenericTagValue(attr); + + if (generic != null) { + attrType += "<" + getAttributeType(generic) + ">"; + } + } + } + return attrType; + } + + protected String getAttributeType(String attrType) { + if (!JavaGeneratorUtil.isPrimitiveType(attrType)) { + boolean hasClass = model.hasClass(attrType); + if (hasClass) { + ObjectModelClass attributeClass = model.getClass(attrType); + String attributeType = beanNameTranslation.get(attributeClass); + if (attributeType != null) { + attrType = attributeClass.getPackageName() + "." + attributeType; + } } } return attrType; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.