r648 - in nuiton-jpa: nuiton-jpa-api/src/main/java/org/nuiton/jpa/api nuiton-jpa-templates/src/main/java/org/nuiton/jpa/templates
Author: tchemit Date: 2013-06-04 08:59:45 +0200 (Tue, 04 Jun 2013) New Revision: 648 Url: http://nuiton.org/projects/sandbox/repository/revisions/648 Log: [nuiton-jpa] - add findById useful method [nuiton-jpa] - add new contructor with idGenerator for PersistenceContext template Modified: nuiton-jpa/nuiton-jpa-api/src/main/java/org/nuiton/jpa/api/JpaEntities.java nuiton-jpa/nuiton-jpa-templates/src/main/java/org/nuiton/jpa/templates/JpaPersistenceContextTransformer.java Modified: nuiton-jpa/nuiton-jpa-api/src/main/java/org/nuiton/jpa/api/JpaEntities.java =================================================================== --- nuiton-jpa/nuiton-jpa-api/src/main/java/org/nuiton/jpa/api/JpaEntities.java 2013-06-03 06:38:58 UTC (rev 647) +++ nuiton-jpa/nuiton-jpa-api/src/main/java/org/nuiton/jpa/api/JpaEntities.java 2013-06-04 06:59:45 UTC (rev 648) @@ -25,11 +25,14 @@ */ import com.google.common.base.Function; +import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; import org.apache.commons.lang3.ObjectUtils; import java.io.Serializable; +import java.util.Collection; import java.util.Comparator; /** @@ -41,6 +44,12 @@ */ public class JpaEntities { + public static <E extends JpaEntity> E findById(Iterable<E> entities, String id) { + Optional<E> eOptional = Iterables.tryFind(entities, entityHasId(id)); + E result = eOptional.orNull(); + return result; + } + public static class GetIdFunction implements Function<JpaEntity, String> { @Override Modified: nuiton-jpa/nuiton-jpa-templates/src/main/java/org/nuiton/jpa/templates/JpaPersistenceContextTransformer.java =================================================================== --- nuiton-jpa/nuiton-jpa-templates/src/main/java/org/nuiton/jpa/templates/JpaPersistenceContextTransformer.java 2013-06-03 06:38:58 UTC (rev 647) +++ nuiton-jpa/nuiton-jpa-templates/src/main/java/org/nuiton/jpa/templates/JpaPersistenceContextTransformer.java 2013-06-04 06:59:45 UTC (rev 648) @@ -30,6 +30,7 @@ import org.nuiton.eugene.models.object.ObjectModelJavaModifier; import org.nuiton.eugene.models.object.ObjectModelOperation; import org.nuiton.jpa.api.AbstractJpaPersistenceContext; +import org.nuiton.jpa.api.JpaEntityIdGenerator; import javax.persistence.EntityManager; import java.util.List; @@ -120,6 +121,9 @@ super(new <%=idGenerator%>(), entityManager); }*/ ); + + addConstructorWithIdGeneratorAndEntityManager(output); + } else { // not using an idGenerator @@ -158,7 +162,31 @@ setSuperClass(output, entityAbstractName); + String idGenerator = + JpaTemplatesGeneratorUtil.getIdGeneratorTagValue(getModel()); + + if (StringUtils.isNotEmpty(idGenerator)) { + + addConstructorWithIdGeneratorAndEntityManager(output); + } addConstructorWithEntityManager(output); + return output; } + + protected void addConstructorWithIdGeneratorAndEntityManager(ObjectModelClass output) { + + ObjectModelOperation constructor = addConstructor( + output, + ObjectModelJavaModifier.PUBLIC); + + addParameter(constructor, JpaEntityIdGenerator.class, "idGenerator"); + addParameter(constructor, EntityManager.class, "entityManager"); + + setOperationBody(constructor, "" + /*{ + super(idGenerator, entityManager); + }*/ + ); + } }
participants (1)
-
tchemit@users.nuiton.org