branch develop updated (78433ce -> 985b20c)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository eugene. See https://gitlab.nuiton.org/nuiton/eugene.git from 78433ce [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 624f4be Add new tag value 8 new ccf7cda use new tagvalue java8 in Simple JavaBean transformer new 985b20c Add a new tag value on model to be able to generate java 8 code (like Method reference, java.util.Function, ...) Fixes #4001 Merge branch 'feature/4001' into develop The 3 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 985b20c562ee66579dfdc3ccfcd279c7a336f8fe Merge: 78433ce ccf7cda Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 22 17:39:22 2016 +0200 Add a new tag value on model to be able to generate java 8 code (like Method reference, java.util.Function, ...) Fixes #4001 Merge branch 'feature/4001' into develop commit ccf7cdaaaae95996fab5c36d6e04f66e4325a6b6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 22 17:39:16 2016 +0200 use new tagvalue java8 in Simple JavaBean transformer commit 624f4be05218cb703db98f599d5fbccff7f87489 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 22 17:38:58 2016 +0200 Add new tag value 8 Summary of changes: .../eugene/java/AbstractJavaBeanTransformer.java | 4 + .../nuiton/eugene/java/JavaTemplatesTagValues.java | 26 ++++ .../SimpleJavaBeanWithNoInterfaceTransformer.java | 157 +++++++++++++-------- 3 files changed, 132 insertions(+), 55 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 eugene. See https://gitlab.nuiton.org/nuiton/eugene.git commit 624f4be05218cb703db98f599d5fbccff7f87489 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 22 17:38:58 2016 +0200 Add new tag value 8 --- .../eugene/java/AbstractJavaBeanTransformer.java | 4 ++++ .../nuiton/eugene/java/JavaTemplatesTagValues.java | 26 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/AbstractJavaBeanTransformer.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/AbstractJavaBeanTransformer.java index 4f2549f..78dddcf 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/AbstractJavaBeanTransformer.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/AbstractJavaBeanTransformer.java @@ -912,4 +912,8 @@ public abstract class AbstractJavaBeanTransformer extends ObjectModelTransformer } + protected boolean isUseJava8() { + return getJavaTemplatesTagValues().isUseJava8(model); + } + } 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..1131b8c 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 @@ -721,4 +721,30 @@ public class JavaTemplatesTagValues extends TagValueDefinitionProvider { return value; } + /** + * To use java 8 new syntax and api in generation. + * + * You can globaly use it on the complete model. + * + * @see #isUseJava8(ObjectModel) + * @since 2.15 + */ + @TagValueDefinition( + target = {ObjectModel.class}, + documentation = "To use java 8 new syntax and API.\n") + public static final String TAG_JAVA8 = "java8"; + + /** + * Obtain the value of the {@link #TAG_JAVA8} tag value on the given model. + * + * @param model model to seek + * @return {@code true} the none empty value of the found tag value or {@code false} if not found nor empty. + * @see #TAG_JAVA8 + * @since 2.15 + */ + public boolean isUseJava8(ObjectModel model) { + boolean value = findBooleanTagValue(TAG_JAVA8, model); + return value; + } + } -- 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 https://gitlab.nuiton.org/nuiton/eugene.git commit ccf7cdaaaae95996fab5c36d6e04f66e4325a6b6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 22 17:39:16 2016 +0200 use new tagvalue java8 in Simple JavaBean transformer --- .../SimpleJavaBeanWithNoInterfaceTransformer.java | 157 +++++++++++++-------- 1 file changed, 102 insertions(+), 55 deletions(-) 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 f30c2f5..b08e8c3 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 @@ -26,10 +26,8 @@ package org.nuiton.eugene.java; /*{generator option: writeString = +}*/ import com.google.common.base.Function; -import com.google.common.base.Predicate; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -49,7 +47,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.Objects; /** * Generates a java bean and a utility class around it. This transformer acts like {@link SimpleJavaBeanTransformer} @@ -79,11 +76,13 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr ImmutableSet<ObjectModelClass> beanClasses; ImmutableSet<ObjectModelClass> beanDefaultClasses; + protected boolean useJava8; @Override public void transformFromModel(ObjectModel model) { super.transformFromModel(model); + useJava8 = isUseJava8(); ImmutableMap.Builder<ObjectModelClass, String> beanNameTranslationBuilder = new ImmutableMap.Builder<>(); ImmutableMap.Builder<ObjectModelClass, String> beanDefaultsNameTranslationBuilder = new ImmutableMap.Builder<>(); ImmutableSet.Builder<ObjectModelClass> beanClassesBuilder = new ImmutableSet.Builder<>(); @@ -503,17 +502,30 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr String capitalizeAttrName = JavaGeneratorUtil.capitalizeJavaBeanPropertyName(attrName); String newPreficateMethodName = "new" + capitalizeAttrName + "Predicate"; - ObjectModelOperation operation = addOperation( - output, - newPreficateMethodName, - "<BeanType extends " + typeName + "> Predicate<BeanType>", - ObjectModelJavaModifier.STATIC, - ObjectModelJavaModifier.PUBLIC - ); - addParameter(operation, simpleType, attrName); - String getterName = getGetterName(attribute, attrName); - setOperationBody(operation, "" + ObjectModelOperation operation; + + + + operation = addOperation( + output, + newPreficateMethodName, + "<BeanType extends " + typeName + "> Predicate<BeanType>", + ObjectModelJavaModifier.STATIC, + ObjectModelJavaModifier.PUBLIC + ); + addParameter(operation, simpleType, attrName); + String getterName = getGetterName(attribute, attrName); + + if (useJava8) { + setOperationBody(operation, "" + /*{ + return o -> Objects.equals(<%=attrName%>, o.<%=getterName%>()); + + }*/ + ); + } else { + setOperationBody(operation, "" /*{ final <%=simpleType%> $tmp = <%=attrName%>; return new Predicate<BeanType>() { @@ -525,29 +537,48 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr }; }*/ - ); + ); + } operation = addOperation( output, "filterBy" + capitalizeAttrName, - "<BeanType extends " + typeName + "> Iterable<BeanType>", + "<BeanType extends " + typeName + "> List<BeanType>", ObjectModelJavaModifier.STATIC, ObjectModelJavaModifier.PUBLIC ); - addParameter(operation, "Iterable<BeanType>", "source"); + addParameter(operation, "Collection<BeanType>", "source"); addParameter(operation, simpleType, attrName); - setOperationBody(operation, "" + + if (useJava8) { + setOperationBody(operation, "" + /*{ + return source.stream().filter(<%=newPreficateMethodName%>(<%=attrName%>)).collect(Collectors.toList()); + }*/ + ); + } else { + setOperationBody(operation, "" /*{ return Iterables.filter(source, <%=newPreficateMethodName%>(<%=attrName%>)); }*/ - ); + ); + } } if (atLeastOnePropertyFound) { - addImport(output, Predicate.class); - addImport(output, Objects.class); + if(useJava8) { + + addImport(output, Collection.class); + addImport(output, List.class); + addImport(output, "java.util.Objects"); + addImport(output, "java.util.function.Predicate"); + addImport(output, "java.util.stream.Collectors"); + } else { + addImport(output, com.google.common.base.Objects.class); + addImport(output, com.google.common.base.Predicate.class); + addImport(output, com.google.common.collect.Iterables.class); + } addImport(output, Iterable.class); - addImport(output, Iterables.class); } } @@ -572,6 +603,7 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr String simpleType = JavaGeneratorUtil.getSimpleName(attrType); simpleType = wrapPrimitiveType(simpleType); String capitalizeAttrName = JavaGeneratorUtil.capitalizeJavaBeanPropertyName(attrName); + String getterName = getGetterName(attribute, attrName); String newFunctionMethodName = "new" + capitalizeAttrName + "Function"; String getFunctionMethodName = "get" + capitalizeAttrName + "Function"; @@ -582,52 +614,52 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr output, functionFieldName, "Function<" + typeName + ", " + simpleType + ">", - newFunctionMethodName + "()", + useJava8 ? typeName + "::" + getterName : newFunctionMethodName + "()", ObjectModelJavaModifier.FINAL, ObjectModelJavaModifier.STATIC, ObjectModelJavaModifier.PROTECTED ); - - ObjectModelOperation operation = addOperation( - output, - getFunctionMethodName, - "<BeanType extends " + typeName + "> " + functionTypeName, - ObjectModelJavaModifier.STATIC, - ObjectModelJavaModifier.PUBLIC - ); + if (!useJava8) { + ObjectModelOperation operation = addOperation( + output, + getFunctionMethodName, + "<BeanType extends " + typeName + "> " + functionTypeName, + ObjectModelJavaModifier.STATIC, + ObjectModelJavaModifier.PUBLIC + ); - setOperationBody(operation, "" + setOperationBody(operation, "" /*{ return (<%=functionTypeName%>) <%=functionFieldName%>; }*/ - ); + ); - operation = addOperation( - output, - newFunctionMethodName, - "<BeanType extends " + typeName + "> " + functionTypeName, - ObjectModelJavaModifier.STATIC, - ObjectModelJavaModifier.PUBLIC - ); + operation = addOperation( + output, + newFunctionMethodName, + "<BeanType extends " + typeName + "> " + functionTypeName, + ObjectModelJavaModifier.STATIC, + ObjectModelJavaModifier.PUBLIC + ); - String getterName = getGetterName(attribute, attrName); - setOperationBody(operation, "" - /*{ - return new <%=functionTypeName%>() { + setOperationBody(operation, "" +/*{ + return new <%=functionTypeName%>() { - @Override - public <%=simpleType%> apply(BeanType input) { - return input.<%=getterName%>(); - } - }; + @Override + public <%=simpleType%> apply(BeanType input) { + return input.<%=getterName%>(); + } + }; - }*/ - ); +}*/ + ); + } - operation = addOperation( + ObjectModelOperation operation = addOperation( output, "uniqueIndexBy" + capitalizeAttrName, "<BeanType extends " + typeName + "> ImmutableMap<" + simpleType + ", BeanType>", @@ -635,16 +667,31 @@ public class SimpleJavaBeanWithNoInterfaceTransformer extends AbstractJavaBeanTr ObjectModelJavaModifier.PUBLIC ); addParameter(operation, "Iterable<BeanType>", "source"); - setOperationBody(operation, "" + if (useJava8) { + setOperationBody(operation, "" + /*{ + return Maps.uniqueIndex(source, <%=functionFieldName%>::apply); + }*/ + ); + } else { + setOperationBody(operation, "" /*{ return Maps.uniqueIndex(source, <%=functionFieldName%>); }*/ - ); + ); + } } if (atLeastOnePropertyFound) { - addImport(output, Function.class); - addImport(output, Objects.class); + if (useJava8) { + addImport(output, "java.util.function.Function"); + addImport(output, "java.util.Objects"); + } else { + addImport(output, com.google.common.base.Function.class); + addImport(output, com.google.common.collect.Iterables.class); + addImport(output, com.google.common.base.Objects.class); + } + addImport(output, ImmutableMap.class); addImport(output, Iterable.class); addImport(output, Maps.class); -- 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 https://gitlab.nuiton.org/nuiton/eugene.git commit 985b20c562ee66579dfdc3ccfcd279c7a336f8fe Merge: 78433ce ccf7cda Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 22 17:39:22 2016 +0200 Add a new tag value on model to be able to generate java 8 code (like Method reference, java.util.Function, ...) Fixes #4001 Merge branch 'feature/4001' into develop .../eugene/java/AbstractJavaBeanTransformer.java | 4 + .../nuiton/eugene/java/JavaTemplatesTagValues.java | 26 ++++ .../SimpleJavaBeanWithNoInterfaceTransformer.java | 157 +++++++++++++-------- 3 files changed, 132 insertions(+), 55 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm