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,