branch develop updated (25265a4 -> 5a28950)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository eugene. See http://git.nuiton.org/eugene.git from 25265a4 Suppresion de la génération de constructeurs (pas de sens pour ce transformer) new 5a28950 Generate a new object to init all beans of a model (fixes #3756) 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 5a2895066afdb78fb2acb5522d5c0fefc0320afd Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 09:08:59 2015 +0200 Generate a new object to init all beans of a model (fixes #3756) Summary of changes: .../SimpleJavaBeanWithNoInterfaceTransformer.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) -- 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 eugene. See http://git.nuiton.org/eugene.git commit 5a2895066afdb78fb2acb5522d5c0fefc0320afd Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 09:08:59 2015 +0200 Generate a new object to init all beans of a model (fixes #3756) --- .../SimpleJavaBeanWithNoInterfaceTransformer.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) 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 6207fb2..4734da7 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 @@ -38,13 +38,16 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelInterface; import org.nuiton.eugene.models.object.ObjectModelJavaModifier; import org.nuiton.eugene.models.object.ObjectModelOperation; import org.nuiton.eugene.models.object.ObjectModelPackage; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; +import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -124,6 +127,67 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr beanNameTranslation = beanNameTranslationBuilder.build(); beanDefaultsNameTranslation = beanDefaultsNameTranslationBuilder.build(); + ImmutableMap<String, ObjectModelClass> beanClassesByFqn = Maps.uniqueIndex(beanClasses, new Function<ObjectModelClass, String>() { + + @Override + public String apply(ObjectModelClass input) { + return input.getQualifiedName(); + } + }); + ArrayList<String> beanClassesFqn = new ArrayList<>(beanClassesByFqn.keySet()); + Collections.sort(beanClassesFqn); + + String defaultPackageName = getDefaultPackageName(); + + String modelBeanInitializeClassName = model.getName() + "ModelInitializer"; + boolean generateModelInitializer = !isInClassPath(defaultPackageName + "." + modelBeanInitializeClassName); + if (generateModelInitializer) { + + ObjectModelInterface anInterface = createInterface(modelBeanInitializeClassName, defaultPackageName); + + addOperation(anInterface, "start", "void"); + addOperation(anInterface, "end", "void"); + + for (String fqn : beanClassesFqn) { + ObjectModelClass beanClass = beanClassesByFqn.get(fqn); + String beanName = beanNameTranslation.get(beanClass); + addImport(anInterface, beanName); + addOperation(anInterface, "init" + beanName, "void"); + + } + } + + String modelInitializerRunnerClassName = model.getName() + "ModelInitializerRunner"; + boolean generateInitializerRunnerClassName = !isInClassPath(defaultPackageName + "." + modelInitializerRunnerClassName); + if (generateInitializerRunnerClassName) { + + ObjectModelClass aClass = createClass(modelInitializerRunnerClassName, defaultPackageName); + + StringBuilder bodyBuilder = new StringBuilder(); + bodyBuilder.append("" +/*{ + initializer.start();}*/ + ); + for (String fqn : beanClassesFqn) { + ObjectModelClass beanClass = beanClassesByFqn.get(fqn); + String beanName = beanNameTranslation.get(beanClass); + addImport(aClass, beanName); + bodyBuilder.append("" +/*{ + initializer.init<%=beanName%>();}*/ + ); + + } + + bodyBuilder.append("" +/*{ + initializer.end();}*/ + ); + ObjectModelOperation operation = addOperation(aClass, "init", "void", ObjectModelJavaModifier.STATIC); + addParameter(operation, modelBeanInitializeClassName, "initializer"); + setOperationBody(operation, bodyBuilder.toString()); + } + } @Override -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm