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 1d0188b61c9c40b9f1a00ce4033fde8ffe0f5be2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 4 11:25:14 2015 +0200 Add simpleBeanWithNoInterfaceGenerateConstructors to skip constructors generation on Default classes (See #3775) --- .../eugene/java/JavaTemplatesStereoTypes.java | 32 ++++++++++++++++++++++ .../SimpleJavaBeanWithNoInterfaceTransformer.java | 8 +++--- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java index 1023421..c4402e8 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesStereoTypes.java @@ -193,6 +193,20 @@ public class JavaTemplatesStereoTypes extends StereotypeDefinitionProvider { public static final String STEREOTYPE_SIMPLE_BEAN_WITH_NO_INTERFACE_SKIP_GENERATE_FUNCTIONS = "simpleBeanWithNoInterfaceGenerateFunctions"; /** + * To generate or not constructors methods on Default classes. + * + * You can globaly use it on the complete model, package or on a specific classifier. + * + * @see #isSimpleBeanWithNoInterfaceSkipGenerateDefaultConstructors(ObjectModelClassifier, ObjectModelPackage, ObjectModel)} + * @since 3.0 + */ + @StereotypeDefinition( + target = {ObjectModel.class, ObjectModelPackage.class, ObjectModelClassifier.class}, + documentation = "To generate or not constructors predicates on propertyes on beans.\n" + + "(only effective with simple bean with no interface generator)") + public static final String STEREOTYPE_SIMPLE_BEAN_WITH_NO_INTERFACE_SKIP_GENERATE_DEFAULT_CONSTRUCTORS= "simpleBeanWithNoInterfaceGenerateConstructors"; + + /** * Check if the given classifier has the {@link #STEREOTYPE_BEAN} stereotype. * * @param classifier classifier to test @@ -387,5 +401,23 @@ public class JavaTemplatesStereoTypes extends StereotypeDefinitionProvider { return value; } + /** + * Obtain the value of the {@link #STEREOTYPE_SIMPLE_BEAN_WITH_NO_INTERFACE_SKIP_GENERATE_DEFAULT_CONSTRUCTORS} tag value on the given model or classifier. + * + * It will first look on the model, and then in the given classifier. + * + * <strong>If not filled, then use default {@code s} value.</strong> + * + * @param classifier classifier to seek + * @param model model to seek + * @return the none empty value of the found tag value or {@code null} if not found nor empty. + * @see #STEREOTYPE_SIMPLE_BEAN_WITH_NO_INTERFACE_SKIP_GENERATE_DEFAULT_CONSTRUCTORS + * @since 3.0 + */ + public boolean isSimpleBeanWithNoInterfaceSkipGenerateDefaultConstructors(ObjectModelClassifier classifier, ObjectModelPackage aPackage, ObjectModel model) { + boolean value = Stereotypes.findDirectStereotype(STEREOTYPE_SIMPLE_BEAN_WITH_NO_INTERFACE_SKIP_GENERATE_DEFAULT_CONSTRUCTORS, classifier, aPackage, model); + 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 e73eca3..f8b0dea 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 @@ -376,10 +376,10 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr }*/ ); -// boolean generateContructors = !aClass.isAbstract(); -// if (generateContructors) { -// generateAbstractBeanDefaultsConstructors(output, typeName); -// } + boolean generateContructors = !getJavaTemplatesStereoTypes().isSimpleBeanWithNoInterfaceSkipGenerateDefaultConstructors(aClass, aPackage, model) && !aClass.isAbstract(); + if (generateContructors) { + generateAbstractBeanDefaultsConstructors(output, typeName); + } generateAbstractBeanDefaultsCopyMethods(output, typeName); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.