Hello,

Brendan, pourquoi as-tu fait les modifs suivantes :

 /*{
-        E result = <%=methodToDelegateName%>(v).findAnyOrNull();
-        return result;
+        return <%=methodToDelegateName%>(v).findAnyOrNull();
     }*/
À mon sens, cela nuit à la lisibilité du code généré. Faire des instructions sur le return, on a toujours dit que c'était déconseillé car ça complexifie le débuggage.

Bref, je suis pas pour du tout cette modification, mais j'imagine que tu l'as fait pour une bonne raison, quelle est-elle ?

Merci,
Arnaud




-------- Message original --------
Sujet: [Topia-commits] r2845 - in trunk/topia-persistence/src: main/java/org/nuiton/topia main/java/org/nuiton/topia/generator main/java/org/nuiton/topia/persistence test/java/org/nuiton/topia test/java/org/nuiton/topia/generator test/java/org/nuiton/topia/persistence
Date : Tue, 15 Oct 2013 17:08:17 +0200 (CEST)
De : bleny@users.nuiton.org
Répondre à : topia-commits@list.nuiton.org
Pour : topia-commits@list.nuiton.org


Author: bleny
Date: 2013-10-15 17:08:16 +0200 (Tue, 15 Oct 2013)
New Revision: 2845

Url: http://nuiton.org/projects/topia/repository/revisions/2845

Log:
update tests and change contract for generated dao factories

Modified:
   trunk/topia-persistence/src/main/java/org/nuiton/topia/AbstractTopiaPersistenceContext.java
   trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java
   trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/PersistenceContextTransformer.java
   trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDAO.java
   trunk/topia-persistence/src/test/java/org/nuiton/topia/TopiaJpaSupportTest.java
   trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaTestCase.java
   trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/EntityVisitorExportXmlTest.java
   trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/NaturalIdTest.java
   trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaDAOTest.java

Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/AbstractTopiaPersistenceContext.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/AbstractTopiaPersistenceContext.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/AbstractTopiaPersistenceContext.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -257,7 +257,7 @@
 
             // Looking for specialized DAO
             // This DAO is supposed to exist, as created by generation
-            String daoClassName = entityClass.getName() + "DAO";
+            String daoClassName = entityClass.getName() + "TopiaDao";
             try {
                 Class<TopiaDAO<E>> daoClass = (Class<TopiaDAO<E>>) Class.forName(daoClassName);
                 dao = daoClass.getConstructor().newInstance();

Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -873,8 +873,7 @@
         addParameter(op, attrType, "v");
         setOperationBody(op, ""
 /*{
-        E result = <%=methodToDelegateName%>(v).findAnyOrNull();
-        return result;
+        return <%=methodToDelegateName%>(v).findAnyOrNull();
     }*/
         );
 
@@ -887,8 +886,7 @@
         addParameter(op, attrType, "v");
         setOperationBody(op, ""
 /*{
-        List<E> result = <%=methodToDelegateName%>(v).findAll();
-        return result;
+        return <%=methodToDelegateName%>(v).findAll();
     }*/
         );
 
@@ -956,8 +954,7 @@
             addParameter(op, attrType, "v");
             setOperationBody(op, ""
 /*{
-        E result = <%=methodToDelegateName%>(v).findAnyOrNull();
-        return result;
+        return <%=methodToDelegateName%>(v).findAnyOrNull();
     }*/
             );
 
@@ -970,8 +967,7 @@
             addParameter(op, attrType, "v");
             setOperationBody(op, ""
 /*{
-        List<E> result = <%=methodToDelegateName%>(v).findAll();
-        return result;
+        return <%=methodToDelegateName%>(v).findAll();
     }*/
             );
 

Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/PersistenceContextTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/PersistenceContextTransformer.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/PersistenceContextTransformer.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -176,10 +176,13 @@
 
         for (ObjectModelClass clazz : entityClasses) {
             String clazzName = clazz.getName();
-            String daoClazzName = clazzName + "DAO";
 
+            // TODO brendan 14/10/13 use method
+            String daoContractName = clazzName + "Dao";
+            String daoClazzName = TopiaGeneratorUtil.getConcreteDaoName(clazz);
+
             // specialized getXXXDao method
-            op = addOperation(output, "get" + daoClazzName, clazz.getPackageName() + '.' + daoClazzName);
+            op = addOperation(output, "get" + daoContractName, clazz.getPackageName() + '.' + daoClazzName);
             addImport(output, clazz);
             setOperationBody(op, ""
 /*{

Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDAO.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDAO.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/AbstractTopiaDAO.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -37,6 +37,7 @@
 
 package org.nuiton.topia.persistence;
 
+import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Iterators;
@@ -295,12 +296,6 @@
         return result;
     }
 
-    /**
-     * Cette methode appelle fireVetoableCreate et fireOnCreated Si vous la
-     * surchargé, faites attention a appeler le super ou a appeler vous aussi
-     * ces deux methodes.
-     */
-
     public E create(Map<String, Object> properties) {
 
         E result = newInstance();
@@ -327,6 +322,11 @@
         return result;
     }
 
+    public E create() {
+        E result = newInstance();
+        create(result);
+        return result;
+    }
 
     public E update(E e) {
         try {
@@ -570,6 +570,18 @@
             return getNextStep().findFirstOrNull();
         }
 
+        public Optional<E> tryFindAny() {
+            return getNextStep().tryFindAny();
+        }
+
+        public Optional<E> tryFindFirst() {
+            return getNextStep().tryFindFirst();
+        }
+
+        public Optional<E> tryFindUnique() {
+            return getNextStep().tryFindUnique();
+        }
+
         public List<E> findAll() {
             return getNextStep().findAll();
         }
@@ -634,6 +646,10 @@
             return topiaDAO.findUniqueOrNull(hql, hqlParameters);
         }
 
+        public Optional<E> tryFindUnique() {
+            return topiaDAO.tryFindUnique(hql, hqlParameters);
+        }
+
         public E findFirst() {
             return topiaDAO.findFirst(hql, hqlParameters);
         }
@@ -642,6 +658,10 @@
             return topiaDAO.findFirstOrNull(hql, hqlParameters);
         }
 
+        public Optional<E> tryFindFirst() {
+            return topiaDAO.tryFindFirst(hql, hqlParameters);
+        }
+
         public E findAny() {
             return topiaDAO.findAny(hql, hqlParameters);
         }
@@ -650,6 +670,10 @@
             return topiaDAO.findAnyOrNull(hql, hqlParameters);
         }
 
+        public Optional<E> tryFindAny() {
+            return topiaDAO.tryFindAny(hql, hqlParameters);
+        }
+
         public List<E> findAll() {
             return topiaDAO.findAll(hql, hqlParameters);
         }
@@ -698,6 +722,11 @@
         return uniqueOrNull;
     }
 
+    protected Optional<E> tryFindUnique(String hql, Map<String, Object> hqlParameters) {
+        Optional<E> uniqueOrNull = tryFindUnique(hql, hqlParameters, getEntityClass());
+        return uniqueOrNull;
+    }
+
     protected E findFirst(String hql, Map<String, Object> hqlParameters) {
         E firstOrNull = findFirst(hql, hqlParameters, getEntityClass());
         return firstOrNull;
@@ -708,6 +737,11 @@
         return anyOrNull;
     }
 
+    protected Optional<E> tryFindFirst(String hql, Map<String, Object> hqlParameters) {
+        Optional<E> anyOrNull = tryFindFirst(hql, hqlParameters, getEntityClass());
+        return anyOrNull;
+    }
+
     protected E findAny(String hql, Map<String, Object> hqlParameters) {
         E anyOrNull = findAny(hql, hqlParameters, getEntityClass());
         return anyOrNull;
@@ -718,6 +752,11 @@
         return anyOrNull;
     }
 
+    protected Optional<E> tryFindAny(String hql, Map<String, Object> hqlParameters) {
+        Optional<E> anyOrNull = tryFindAny(hql, hqlParameters, getEntityClass());
+        return anyOrNull;
+    }
+
     protected <R> R findUnique(String hql, Map<String, Object> hqlParameters, Class<R> type) {
         R uniqueOrNull = findUniqueOrNull(hql, hqlParameters, type);
         if (uniqueOrNull == null) {
@@ -727,6 +766,11 @@
         return uniqueOrNull;
     }
 
+    protected <R> Optional<R> tryFindUnique(String hql, Map<String, Object> hqlParameters, Class<R> type) {
+        R uniqueOrNull = findUniqueOrNull(hql, hqlParameters, type);
+        return Optional.fromNullable(uniqueOrNull);
+    }
+
     protected <R> R findUniqueOrNull(String hql, Map<String, Object> hqlParameters, Class<R> type) {
         List<R> results = findAll(hql, hqlParameters, type, 0, 1);
         // If there is more than 1 result, throw an exception
@@ -750,6 +794,11 @@
         return firstOrNull;
     }
 
+    protected <R> Optional<R> tryFindFirst(String hql, Map<String, Object> hqlParameters, Class<R> type) {
+        R firstOrNull = findFirstOrNull(hql, hqlParameters, type);
+        return Optional.fromNullable(firstOrNull);
+    }
+
     protected <R> R findFirstOrNull(String hql, Map<String, Object> hqlParameters, Class<R> type) {
         Preconditions.checkArgument(hql.toLowerCase().contains("order by"));
         R anyOrNull = findAnyOrNull(hql, hqlParameters, type);
@@ -765,6 +814,11 @@
         return anyOrNull;
     }
 
+    protected <R> Optional<R> tryFindAny(String hql, Map<String, Object> hqlParameters, Class<R> type) {
+        R anyOrNull = findAnyOrNull(hql, hqlParameters, type);
+        return Optional.fromNullable(anyOrNull);
+    }
+
     protected <R> R findAnyOrNull(String hql, Map<String, Object> hqlParameters, Class<R> type) {
         Preconditions.checkNotNull(hql);
         Preconditions.checkNotNull(hqlParameters);

Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/TopiaJpaSupportTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/TopiaJpaSupportTest.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/TopiaJpaSupportTest.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -23,8 +23,6 @@
  */
 package org.nuiton.topia;
 
-import java.util.List;
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
@@ -35,6 +33,8 @@
 import org.nuiton.topiatest.Personne;
 import org.nuiton.topiatest.PersonneDAO;
 
+import java.util.List;
+
 /**
  * Tests the TopiaContext#find|findAll|findUnique methods
  *
@@ -56,8 +56,8 @@
         persistenceContext = db.beginTransaction();
         jpaSupport = persistenceContext.jpaSupport;
 
-        personneDAO = persistenceContext.getPersonneDAO();
-        addressDAO = persistenceContext.getAddressDAO();
+        personneDAO = persistenceContext.getPersonneDao();
+        addressDAO = persistenceContext.getAddressDao();
 
         address = addressDAO.create(
                 Address.PROPERTY_ADRESS, "17 rue de la Pote Gellée, 44200 NANTES");

Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaTestCase.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaTestCase.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaTestCase.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -30,7 +30,6 @@
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.nuiton.topia.TopiaContext;
 import org.nuiton.topia.TopiaDatabase;
 import org.nuiton.topia.TopiaException;
 import org.nuiton.topia.TopiaTestDAOHelper;
@@ -124,8 +123,8 @@
 //        try {
         TopiaTestTopiaPersistenceContext newContext = db.beginTransaction();
 
-        CompanyDAO companyDAO = newContext.getCompanyDAO();
-        DepartmentDAO departmentDAO = newContext.getDepartmentDAO();
+        CompanyDAO companyDAO = newContext.getCompanyDao();
+        DepartmentDAO departmentDAO = newContext.getDepartmentDao();
 
         Company company = companyDAO.create();
         company.setName("Ma société");

Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/EntityVisitorExportXmlTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/EntityVisitorExportXmlTest.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/EntityVisitorExportXmlTest.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -72,14 +72,14 @@
         TopiaTestTopiaPersistenceContext newContext = db.beginTransaction();
         try {
             // company
-            CompanyDAO companyDAO = newContext.getCompanyDAO();
+            CompanyDAO companyDAO = newContext.getCompanyDao();
             Company clCompany = companyDAO.create(Company.PROPERTY_NAME, "CodeLutin");
 
             // employe
-            EmployeDAO employeDAO = newContext.getEmployeDAO();
+            EmployeDAO employeDAO = newContext.getEmployeDao();
             Employe empl1 = employeDAO.create(Employe.PROPERTY_NAME, "boss", Employe.PROPERTY_SALARY, 30000);
 
-            AddressDAO adressDAO = newContext.getAddressDAO();
+            AddressDAO adressDAO = newContext.getAddressDao();
             Address addr1 = adressDAO.create(Address.PROPERTY_CITY, "Nantes", Address.PROPERTY_ADRESS, "12 Avenue Jules Vernes");
             empl1.setAddress(addr1);
 
@@ -88,7 +88,7 @@
             empl2.setAddress(addr2);
 
             // departement
-            DepartmentDAO departmentDAO = newContext.getDepartmentDAO();
+            DepartmentDAO departmentDAO = newContext.getDepartmentDao();
             Department depComm = departmentDAO.create(Department.PROPERTY_NAME, "Commercial");
             depComm.setLeader(empl1);
 
@@ -117,7 +117,7 @@
 
         TopiaTestTopiaPersistenceContext context = db.beginTransaction();
 
-        CompanyDAO companyDAO = context.getCompanyDAO();
+        CompanyDAO companyDAO = context.getCompanyDao();
         Company clCompany = companyDAO.findByName("CodeLutin");
 
         EntityVisitor delegateVisitor = new ExportXMLVisitor();

Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/NaturalIdTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/NaturalIdTest.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/NaturalIdTest.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -31,13 +31,10 @@
 import org.junit.Assert;
 import org.junit.Rule;
 import org.junit.Test;
-import org.nuiton.topia.TopiaContext;
 import org.nuiton.topia.TopiaDatabase;
 import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.TopiaPersistenceContext;
 import org.nuiton.topia.TopiaTestDAOHelper;
 import org.nuiton.topia.TopiaTestTopiaPersistenceContext;
-import org.nuiton.topia.TopiaTransaction;
 import org.nuiton.topiatest.NaturalizedEntity;
 import org.nuiton.topiatest.NaturalizedEntityDAO;
 
@@ -65,7 +62,7 @@
         TopiaTestTopiaPersistenceContext persistenceContext = db.beginTransaction();
 
         NaturalizedEntityDAO dao =
-                persistenceContext.getNaturalizedEntityDAO();
+                persistenceContext.getNaturalizedEntityDao();
 
         // No exception will be thrown with the two properties
         dao.createByNaturalId(5, "str");
@@ -86,7 +83,7 @@
         TopiaTestTopiaPersistenceContext persistenceContext = db.beginTransaction();
 
         NaturalizedEntityDAO dao =
-                persistenceContext.getNaturalizedEntityDAO();
+                persistenceContext.getNaturalizedEntityDao();
 
         // Exception will be throw
         try {
@@ -112,7 +109,7 @@
         TopiaTestTopiaPersistenceContext persistenceContext = db.beginTransaction();
 
         NaturalizedEntityDAO dao =
-                persistenceContext.getNaturalizedEntityDAO();
+                persistenceContext.getNaturalizedEntityDao();
 
         NaturalizedEntity entity =
                 dao.createByNaturalId(5, "str");
@@ -135,7 +132,7 @@
 
 
         NaturalizedEntityDAO dao =
-                persistenceContext.getNaturalizedEntityDAO();
+                persistenceContext.getNaturalizedEntityDao();
 
         NaturalizedEntity entity =
                 dao.createByNaturalId(5, "str");
@@ -153,7 +150,7 @@
 
 
         NaturalizedEntityDAO dao =
-                persistenceContext.getNaturalizedEntityDAO();
+                persistenceContext.getNaturalizedEntityDao();
 
         dao.createByNaturalId(5, "str");
         persistenceContext.commitTransaction();

Modified: trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaDAOTest.java
===================================================================
--- trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaDAOTest.java	2013-10-11 22:50:35 UTC (rev 2844)
+++ trunk/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaDAOTest.java	2013-10-15 15:08:16 UTC (rev 2845)
@@ -61,7 +61,7 @@
     public void setup() throws TopiaException {
 
         context = db.beginTransaction();
-        dao = context.getPersonDAO();
+        dao = context.getPersonDao();
     }
 
     /**

_______________________________________________
Topia-commits mailing list
Topia-commits@list.nuiton.org
http://list.nuiton.org/cgi-bin/mailman/listinfo/topia-commits