Author: athimel Date: 2013-10-30 02:17:00 +0100 (Wed, 30 Oct 2013) New Revision: 2850 Url: http://nuiton.org/projects/topia/repository/revisions/2850 Log: Deprecated generated ProjectDAOHelper Keep old getDAO method in ProjectDAOHelper Improve display for migration help in console Add missing import in GeneratedXxxTopiaDao Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOHelperTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDaoTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/LegacyTopiaDao.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOHelperTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOHelperTransformer.java 2013-10-25 22:18:09 UTC (rev 2849) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOHelperTransformer.java 2013-10-30 01:17:00 UTC (rev 2850) @@ -154,6 +154,8 @@ addImport(daoHelper, EntityOperatorStore.class); } + addAnnotation(daoHelper, daoHelper, Deprecated.class); + // add non public constructor ObjectModelOperation constructor = addConstructor(daoHelper, ObjectModelJavaModifier.PROTECTED); @@ -196,6 +198,19 @@ } + // obsolete generic getDAO method + op = addOperation(daoHelper, "getDAO", "<T extends TopiaEntity, D extends TopiaDAO<? super T>> D", ObjectModelJavaModifier.PUBLIC, ObjectModelJavaModifier.STATIC); + addParameter(op, TopiaContext.class, "context"); + addParameter(op, "Class<T>", "klass"); + addException(op, TopiaException.class); + addAnnotation(daoHelper, op, Deprecated.class); + setOperationBody(op, "" +/*{ + D dao = getDao(context, klass); + return dao; + }*/ + ); + // generic getDao method op = addOperation(daoHelper, "getDao", "<T extends TopiaEntity, D extends TopiaDAO<? super T>> D", ObjectModelJavaModifier.PUBLIC, ObjectModelJavaModifier.STATIC); addParameter(op, TopiaContext.class, "context"); 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-25 22:18:09 UTC (rev 2849) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDaoTransformer.java 2013-10-30 01:17:00 UTC (rev 2850) @@ -378,10 +378,11 @@ String format = "public class %s%s extends %s {"; String superclassName = superclassQualifiedName.substring(superclassQualifiedName.lastIndexOf('.') + 1); String daoDeclaration = String.format(format, daoName, Strings.nullToEmpty(daoGenerics), superclassName); - String warnMessage = "Legacy DAO detected !%n" + - " - You should consider renaming '%s' to '%s.%s'%n" + - " - Expected class declaration is : %s"; - log.warn(String.format(warnMessage, legacyDaoFqn, packageName, daoName, daoDeclaration)); + String warnMessage = "Legacy DAO detected : %s !%n" + + " - You should consider renaming '%s' to '%s'%n" + + " - Expected class declaration is : %s%n" + + "%n"; // AThimel 29/10/13 Add a new line for log clearness + log.warn(String.format(warnMessage, legacyDaoFqn, legacyDaoName, daoName, daoDeclaration)); } } @@ -588,6 +589,7 @@ // TODO peut-etre qu'hibernate est capable de faire ca tout seul ? // THIMEL: J'ai remplacé reverse.getName() par reverseAttrName sans certitude addImport(result, attrType); + addImport(result, attr.getType() + "TopiaDao"); // AThimel 30/10/13 Not using attrType because we need FQN // Can use TopiaGeneratorUtil.getConcreteDaoFqn(...) ? String attrSimpleType = TopiaGeneratorUtil.getClassNameFromQualifiedName(attrType); // XXX brendan 04/10/13 do not hard code concrete dao name String attrConcreteDaoClassName = attrSimpleType + "TopiaDao"; Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/LegacyTopiaDao.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/LegacyTopiaDao.java 2013-10-25 22:18:09 UTC (rev 2849) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/persistence/LegacyTopiaDao.java 2013-10-30 01:17:00 UTC (rev 2850) @@ -145,6 +145,7 @@ Preconditions.checkNotNull(StringUtils.isNotBlank(hql)); Preconditions.checkArgument(hql.toUpperCase().trim().startsWith("SELECT COUNT(")); Map<String, Object> hqlParameters = TopiaUtil.convertPropertiesArrayToMap(propertyNamesAndValues); + // FIXME AThimel 30/10/13 This cannot work : the final query will be "select count(topiaId) select count(...) ..." long count = forHql(hql, hqlParameters).count(); return count; }