Author: tchemit
Date: 2009-12-18 11:35:35 +0100 (Fri, 18 Dec 2009)
New Revision: 1726
Modified:
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BeanTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java
trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaMetaGenerator.java
Log:
- change log level to debug for nearly everything
- remove deprecated method from TopiaGeneratorUtil, since there are already in GeneratorUil ?
- at last can use now in TopiaMetagenerator all new transformers :)
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BeanTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BeanTransformer.java 2009-12-18 10:34:12 UTC (rev 1725)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/BeanTransformer.java 2009-12-18 10:35:35 UTC (rev 1726)
@@ -348,8 +348,8 @@
// Copy all primitives attributes from the Entity (supplier) to the DTO
// Prepare a list to future generation of all object generated attributes
if (supplier.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_ENTITY)) {
- if (log.isInfoEnabled()) {
- log.info("Create primitive and date fields in DTO from Entity : "
+ if (log.isDebugEnabled()) {
+ log.debug("Create primitive and date fields in DTO from Entity : "
+ supplier.getQualifiedName());
}
for (ObjectModelAttribute attr : supplier.getAttributes()) {
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java 2009-12-18 10:34:12 UTC (rev 1725)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityAbstractTransformer.java 2009-12-18 10:35:35 UTC (rev 1726)
@@ -70,8 +70,8 @@
ObjectModelClass result;
- if (log.isInfoEnabled()) {
- log.info("for entity : " + clazz.getQualifiedName());
+ if (log.isDebugEnabled()) {
+ log.debug("for entity : " + clazz.getQualifiedName());
}
result = createAbstractClass(clazzName + "Abstract", clazz.getPackageName());
@@ -251,7 +251,7 @@
}
String i18nPrefix = TopiaGeneratorUtil.getI18nPrefix(clazz, model);
- if (i18nPrefix != null) {
+ if (!StringUtils.isEmpty(i18nPrefix)) {
// generate i18n prefix
generateI18n(result, i18nPrefix, clazz);
}
@@ -762,8 +762,11 @@
}
protected void generateToStringMethod(ObjectModelClass result, ObjectModelClass clazz) {
-
+ if (log.isDebugEnabled()) {
+ log.debug("generate toString method for clazz " + clazz.getQualifiedName());
+ }
ObjectModelOperation op = addOperation(result, "toString", String.class, ObjectModelModifier.PUBLIC);
+ addAnnotation(result, op, Override.class.getSimpleName());
StringBuilder body = new StringBuilder();
@@ -1056,9 +1059,11 @@
}
//FIXME : use a block extension for java
+ ObjectModelOperation op = addBlock(result, ObjectModelModifier.STATIC);
+ setOperationBody(op, buffer.toString());
}
private void addI18n(StringBuilder buffer, String i18nPrefix, String suffix) {
- buffer.append(" org.nuiton.i18n.I18n.n_(\"").append(i18nPrefix).append(suffix).append("\");\n");
+ buffer.append("\n org.nuiton.i18n.I18n.n_(\"").append(i18nPrefix).append(suffix).append("\");");
}
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java 2009-12-18 10:34:12 UTC (rev 1725)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityInterfaceTransformer.java 2009-12-18 10:35:35 UTC (rev 1726)
@@ -63,8 +63,8 @@
ObjectModelInterface result;
- if (log.isInfoEnabled()) {
- log.info("for entity : "+clazz.getQualifiedName());
+ if (log.isDebugEnabled()) {
+ log.debug("for entity : "+clazz.getQualifiedName());
}
result = createInterface(clazzName, clazz.getPackageName());
@@ -440,8 +440,7 @@
);
}
annotationCode.append(""
-/*{)
-}*/
+/*{)}*/
);
addAnnotation(result, result, annotationCode.toString());
}
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2009-12-18 10:34:12 UTC (rev 1725)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2009-12-18 10:35:35 UTC (rev 1726)
@@ -51,94 +51,168 @@
import org.nuiton.eugene.models.object.ObjectModelOperation;
import org.nuiton.eugene.models.object.ObjectModelParameter;
-/** Classe regroupant divers méthodes utiles pour la génération des entités */
+/**
+ * Classe regroupant divers méthodes utiles pour la génération des entités
+ */
public class TopiaGeneratorUtil extends GeneratorUtil {
- /** Stéréotype pour les interfaces devant être générées sous forme de facades */
+ /**
+ * Stéréotype pour les interfaces devant être générées sous forme de facades
+ */
public final static String STEREOTYPE_FACADE = "facade";
- /** Stéréotype pour les objets devant être générées sous forme d'entités */
+ /**
+ * Stéréotype pour les objets devant être générées sous forme d'entités
+ */
public static final String STEREOTYPE_ENTITY = "entity";
- /** Stéréotype pour les objets devant être générées sous forme de DTO */
+ /**
+ * Stéréotype pour les objets devant être générées sous forme de DTO
+ */
public static final String STEREOTYPE_DTO = "dto";
- /** Stéréotype pour les objets devant être générées sous forme de bean */
+ /**
+ * Stéréotype pour les objets devant être générées sous forme de bean
+ */
public static final String STEREOTYPE_BEAN = "bean";
/**
* Stéréotype pour les interfaces devant être générées sous forme de
* services
*/
public static final String STEREOTYPE_SERVICE = "service";
- /** Stéréotype pour les interfaces devant être générées sous forme de DAO */
+ /**
+ * Stéréotype pour les interfaces devant être générées sous forme de DAO
+ */
public static final String STEREOTYPE_DAO = "dao";
- /** Stéréotype pour les attributs à indexer en base */
+ /**
+ * Stéréotype pour les attributs à indexer en base
+ */
public static final String STEREOTYPE_INDEXED = "indexed";
- /** Stéréotype pour les collections avec unicité */
+ /**
+ * Stéréotype pour les collections avec unicité
+ */
public static final String STEREOTYPE_UNIQUE = "unique";
- /** Stéréotype pour les attributs étant des clés primaires */
+ /**
+ * Stéréotype pour les attributs étant des clés primaires
+ */
public static final String STEREOTYPE_PRIMARYKAY = "primaryKey";
- /** Stéréotype pour les attributs considérés comme des tableaux */
+ /**
+ * Stéréotype pour les attributs considérés comme des tableaux
+ */
public static final String STEREOTYPE_ARRAY = "array";
- /** Tag pour le type de persistence */
+ /**
+ * Tag pour le type de persistence
+ */
public static final String TAG_PERSISTENCE_TYPE = "persistenceType";
- /** Tag pour le nom du champ / entité en BD */
+ /**
+ * Tag pour le nom du champ / entité en BD
+ */
public static final String TAG_DB_NAME = "dbName";
- /** Tag pour le nom du schema en BD */
+ /**
+ * Tag pour le nom du schema en BD
+ */
public static final String TAG_SCHEMA_NAME = "dbSchema";
- /** Tag pour la taille du champ en BD */
+ /**
+ * Tag pour la taille du champ en BD
+ */
public static final String TAG_LENGTH = "length";
- /** Tag pour ajouter une annotation à un champ */
+ /**
+ * Tag pour ajouter une annotation à un champ
+ */
public static final String TAG_ANNOTATION = "annotation";
- /** Tag pour ajouter specifier le copyright d'un fichier */
+ /**
+ * Tag pour ajouter specifier le copyright d'un fichier
+ */
public static final String TAG_COPYRIGHT = "copyright";
- /** Tag pour specfier le type d'acces a un champ */
+ /**
+ * Tag pour specfier le type d'acces a un champ
+ */
public static final String TAG_ACCESS = "access";
- /** Tag pour specfier si on doit générer i18n */
+ /**
+ * Tag pour specfier si on doit générer i18n
+ */
public static final String TAG_I18N_PREFIX = "i18n";
- /** Tag pour ajouter un attribut dans une clef métier */
+ /**
+ * Tag pour ajouter un attribut dans une clef métier
+ */
public static final String TAG_NATURAL_ID = "naturalId";
- /** Tag pour specifier si une clef metier est mutable */
+ /**
+ * Tag pour specifier si une clef metier est mutable
+ */
public static final String TAG_NATURAL_ID_MUTABLE = "naturalIdMutable";
- /** Tag pour spécifier la caractèrelazy d'une association multiple */
+ /**
+ * Tag pour spécifier la caractèrelazy d'une association multiple
+ */
public static final String TAG_LAZY = "lazy";
- /** Tag pour spécifier la caractère fetch d'une association multiple */
+ /**
+ * Tag pour spécifier la caractère fetch d'une association multiple
+ */
public static final String TAG_FETCH = "fetch";
- /** Tag pour spécifier la caractère order-by d'une association multiple */
+ /**
+ * Tag pour spécifier la caractère order-by d'une association multiple
+ */
public static final String TAG_ORDER_BY = "orderBy";
- /** Tag pour spécifier la caractère not-null d'un attribut */
+ /**
+ * Tag pour spécifier la caractère not-null d'un attribut
+ */
public static final String TAG_NOT_NULL = "notNull";
- /** Tag pour spécifier la caractère embed-xml d'une association */
+ /**
+ * Tag pour spécifier la caractère embed-xml d'une association
+ */
public static final String TAG_EMBED_XML = "embedXml";
/**
* Tag pour configurer l'interface du proxy sur autre chose que l'implementation par defaut.
- *
+ * <p/>
* Par defaut :
- * null > generere le proxy sur l'interface de l'implementation
+ * null > generere le proxy sur l'interface de l'implementation
* Autre valeur :
- * "none" > laisse la configuration par defaut d'hibernate
+ * "none" > laisse la configuration par defaut d'hibernate
*/
public static final String TAG_PROXY_INTERFACE = "hibernateProxyInterface";
- /** Tag pour spécifier le permissions à la création */
+ /**
+ * Tag pour spécifier le permissions à la création
+ */
public static final String TAG_SECURITY_CREATE = "securityCreate";
- /** Tag pour spécifier le permissions au chargement */
+ /**
+ * Tag pour spécifier le permissions au chargement
+ */
public static final String TAG_SECURITY_LOAD = "securityLoad";
- /** Tag pour spécifier le permissions à la mise à jour */
+ /**
+ * Tag pour spécifier le permissions à la mise à jour
+ */
public static final String TAG_SECURITY_UPDATE = "securityUpdate";
- /** Tag pour spécifier le permissions à la suppression */
+ /**
+ * Tag pour spécifier le permissions à la suppression
+ */
public static final String TAG_SECURITY_DELETE = "securityDelete";
- /** Tag pour specifier de ne pas generer la methode toString */
+ /**
+ * Tag pour specifier de ne pas generer la methode toString
+ */
public static final String TAG_NOT_GENERATE_TO_STRING = "notGenerateToString";
- /** Tag pour specifier de trier les attributs par nom lors de la generation */
+ /**
+ * Tag pour specifier de trier les attributs par nom lors de la generation
+ */
public static final String TAG_SORT_ATTRIBUTE = "sortAttribute";
- /** Tag pour specfier si on doit générer la methode getOperator dans les daohelpers )*/
+ /**
+ * Tag pour specfier si on doit générer la methode getOperator dans les daohelpers )
+ */
public static final String TAG_GENERATE_OPERATOR_FOR_DAO_HELPER = "generateOperatorForDAOHelper";
- /** Type de persistence Hibernate */
+ /**
+ * Type de persistence Hibernate
+ */
public static final String PERSISTENCE_TYPE_HIBERNATE = "hibernate";
- /** Type de persistence LDAP */
+ /**
+ * Type de persistence LDAP
+ */
public static final String PERSISTENCE_TYPE_LDAP = "ldap";
- /** Type de persistence par défaut (si aucun précisé) */
+ /**
+ * Type de persistence par défaut (si aucun précisé)
+ */
public static final String PERSISTENCE_TYPE_DEFAULT = PERSISTENCE_TYPE_HIBERNATE;
- /** Propriété des générateurs indiquant le package par défaut */
+ /**
+ * Propriété des générateurs indiquant le package par défaut
+ */
public static final String PROPERTY_DEFAULT_PACKAGE = "defaultPackage";
- /** Le package par défaut si aucun n'est spécifié */
+ /**
+ * Le package par défaut si aucun n'est spécifié
+ */
public static final String DEFAULT_PACKAGE = "org.codelutin.malo";
/**
@@ -181,7 +255,7 @@
* @return l'interface trouvée ou null sinon
*/
public static ObjectModelInterface getDAOInterface(ObjectModelClass clazz,
- ObjectModel model) {
+ ObjectModel model) {
for (Object o : model.getInterfaces()) {
ObjectModelInterface daoInterface = (ObjectModelInterface) o;
if (daoInterface.getName().equals(clazz.getName() + "DAO")) {
@@ -241,7 +315,7 @@
* @return le nom du schema ou null
*/
public static String getSchemaName(ObjectModelElement element,
- ObjectModel model) {
+ ObjectModel model) {
return findTagValue(TAG_SCHEMA_NAME, element, model);
}
@@ -253,7 +327,7 @@
* @return le prefix i18n ou <code>null</code> si non spécifié
*/
public static String getI18nPrefix(ObjectModelElement element,
- ObjectModel model) {
+ ObjectModel model) {
return GeneratorUtil.findTagValue(TAG_I18N_PREFIX, element, model);
}
@@ -265,7 +339,7 @@
* @return le prefix i18n ou <code>null</code> si non spécifié
*/
public static boolean shouldgenerateOperatorForDAOHelper(ObjectModelElement element,
- ObjectModel model) {
+ ObjectModel model) {
String tagValue = GeneratorUtil.findTagValue(TAG_GENERATE_OPERATOR_FOR_DAO_HELPER, element, model);
boolean generate = GeneratorUtil.notEmpty(tagValue) && Boolean.valueOf(tagValue);
return generate;
@@ -297,17 +371,14 @@
* @return la liste des attributs de la clef métier ou null si pas de clef métier.
*/
public static boolean generateToString(ObjectModelClass clazz,
- ObjectModel model) {
+ ObjectModel model) {
String value;
value = model.getTagValue(TAG_NOT_GENERATE_TO_STRING);
if (value != null && !value.trim().isEmpty()) {
return false;
}
value = clazz.getTagValue(TAG_NOT_GENERATE_TO_STRING);
- if (value != null && !value.trim().isEmpty()) {
- return false;
- }
- return true;
+ return (value == null || value.trim().isEmpty());
}
/**
@@ -318,13 +389,13 @@
* @return la liste des attributs de la clef métier ou null si pas de clef métier.
*/
public static boolean sortAttribute(ObjectModelClass clazz,
- ObjectModel model) {
+ ObjectModel model) {
String value;
value = clazz.getTagValue(TAG_SORT_ATTRIBUTE);
if (value == null || value.trim().isEmpty() || "false".equals(value.trim())) {
return false;
}
- if (value != null && "true".equals(value.trim())) {
+ if ("true".equals(value.trim())) {
return true;
}
@@ -332,7 +403,7 @@
if (value == null || value.trim().isEmpty() || "false".equals(value.trim())) {
return false;
}
- if (value != null && "true".equals(value.trim())) {
+ if ("true".equals(value.trim())) {
return true;
}
return true;
@@ -403,7 +474,7 @@
}
public static boolean hasStereotypes(ObjectModelElement element,
- String... stereotypes) {
+ String... stereotypes) {
for (String stereotype : stereotypes) {
if (!element.hasStereotype(stereotype)) {
return false;
@@ -428,9 +499,9 @@
return attributes;
}
- public static String capitalize(String s) {
- return StringUtils.capitalize(s);
- }
+// public static String capitalize(String s) {
+// return StringUtils.capitalize(s);
+// }
public static boolean isAssociationClassDoublon(ObjectModelAttribute attr) {
return (attr.getReverseAttribute() != null) && (attr.getDeclaringElement().equals(attr.getReverseAttribute().getDeclaringElement())) && (!GeneratorUtil.isFirstAttribute(attr));
@@ -449,7 +520,7 @@
attr.getType().lastIndexOf(".") + 1);
String result = attr.getName();
if (attr.getName().equalsIgnoreCase(typeName)) {
- result += capitalize(attr.getAssociationClass().getName());
+ result += StringUtils.capitalize(attr.getAssociationClass().getName());
}
return result;
}
@@ -479,6 +550,7 @@
}
return type;
}
+
private static final Set<String> numberTypes = new HashSet<String>();
private static final Set<String> textTypes = new HashSet<String>();
private static final Set<String> booleanTypes = new HashSet<String>();
@@ -697,7 +769,7 @@
* @return the list of filtred classes by their stereotype
*/
public static List<ObjectModelClass> getEntityClasses(ObjectModel model,
- boolean sort) {
+ boolean sort) {
return getClassesByStereotype(STEREOTYPE_ENTITY, model, sort);
}
@@ -723,7 +795,7 @@
@Override
public int compare(ObjectModelClass o1,
- ObjectModelClass o2) {
+ ObjectModelClass o2) {
return o1.getQualifiedName().compareTo(
o2.getQualifiedName());
}
@@ -759,7 +831,7 @@
/**
* Obtain the list of fqn of object involed in the given class.
*
- * @param aClass the clazz to inspect
+ * @param aClass the clazz to inspect
* @param incomingFqns incoming fqns
* @return the list of fqn of attributes
*/
@@ -774,7 +846,7 @@
/**
* Obtain the list of fqn of object involed in the given interface.
*
- * @param anInterface the interface to inspect
+ * @param anInterface the interface to inspect
* @param incomingFqns incoming fqns
* @return the list of fqn of attributes
*/
@@ -875,7 +947,7 @@
* Obtain the fqn's list of all involed type in a givne operation.
*
* @param operation operation to inspect
- * @param fqns where to store found fqns
+ * @param fqns where to store found fqns
*/
protected static void getImports(ObjectModelOperation operation, Set<String> fqns) {
String fqn = operation.getReturnType();
@@ -889,7 +961,7 @@
* Clean a set of fqns, transform it into a {@link List} and sort it.
*
* @param packageName the current package name
- * @param fqns the dirty set of fqns
+ * @param fqns the dirty set of fqns
* @return the sorted cleaned list of fqns.
*/
protected static List<String> cleanImports(String packageName, Set<String> fqns) {
@@ -920,7 +992,7 @@
/**
* Convertit un nom de variable en nom de constante.
- *
+ *
* @param variableName le nom de variable a convertir
* @return le nom de la constante à partir du nom de la variable
*/
Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaMetaGenerator.java
===================================================================
--- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaMetaGenerator.java 2009-12-18 10:34:12 UTC (rev 1725)
+++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaMetaGenerator.java 2009-12-18 10:35:35 UTC (rev 1726)
@@ -68,8 +68,8 @@
// EntityInterfaceGenerator.class,
EntityInterfaceTransformer.class,
- EntityAbstractGenerator.class,
-// EntityAbstractTransformer.class,
+// EntityAbstractGenerator.class,
+ EntityAbstractTransformer.class,
EntityImplTransformer.class,
// EntityImplGenerator.class,
EntityHibernateMappingGenerator.class,