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
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(); } /**
participants (1)
-
bleny@users.nuiton.org