r2349 - trunk/topia-persistence/src/main/java/org/nuiton/topia/generator
Author: tchemit Date: 2011-10-04 09:10:47 +0200 (Tue, 04 Oct 2011) New Revision: 2349 Url: http://nuiton.org/repositories/revision/topia/2349 Log: Evolution #1766: Do not generate DAOImpl if already found in classpath Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java 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 2011-10-03 16:34:57 UTC (rev 2348) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java 2011-10-04 07:10:47 UTC (rev 2349) @@ -49,6 +49,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.StringUtil; +import java.net.URL; import java.security.Permission; import java.util.ArrayList; import java.util.Collection; @@ -228,13 +229,48 @@ // generate DAO generateDAOClass(clazz, clazzName, clazzFQN); - // generate DAOImpl - generateDAOImpl(clazz, clazzName, clazzFQN); + if (isGenerateImpl(clazz)) { + // generate DAOImpl + generateDAOImpl(clazz, clazzName, clazzFQN); + } + // generate DAOAbstract generateDAOAbstract(clazz, clazzName, clazzFQN); } + protected boolean isGenerateImpl(ObjectModelClass input) { + + String fqn = input.getQualifiedName() + "DAOImpl"; + + URL fileLocation = getFileInClassPath(fqn); + + if (fileLocation != null) { + + // there is already a existing file in class-path, skip + + if (isVerbose()) { + + log.info("Will not generate [" + fqn + "], already found in class-path at location : " + fileLocation); + } else { + log.info("Will not generate [" + fqn + "], already found in class-path."); + } + return false; + } + + Collection<ObjectModelOperation> moreOperations = + extraOperations.get(input.getQualifiedName()); + + if (CollectionUtils.isNotEmpty(moreOperations)) { + + // no user operations, can generate it + return false; + } + + // can safely generate the dao impl + return true; + } + protected void generateDAOClass(ObjectModelClass clazz, String clazzName, String clazzFQN) { ObjectModelClass daoClass = createClass(clazzName + "DAO", clazz.getPackageName()); setDocumentation(daoClass, "/**\n" +
participants (1)
-
tchemit@users.nuiton.org