r3064 - in trunk: topia-it/src/main/xmi topia-templates/src/main/java/org/nuiton/topia/templates
Author: bleny Date: 2014-04-15 15:21:50 +0200 (Tue, 15 Apr 2014) New Revision: 3064 Url: http://forge.nuiton.org/projects/topia/repository/revisions/3064 Log: fixes #3148 Modified: trunk/topia-it/src/main/xmi/topia-it-mapping.zargo trunk/topia-templates/src/main/java/org/nuiton/topia/templates/DTOTransformer.java trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityTransformer.java trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaStereoTypes.java Modified: trunk/topia-it/src/main/xmi/topia-it-mapping.zargo =================================================================== (Binary files differ) Modified: trunk/topia-templates/src/main/java/org/nuiton/topia/templates/DTOTransformer.java =================================================================== --- trunk/topia-templates/src/main/java/org/nuiton/topia/templates/DTOTransformer.java 2014-04-15 09:34:41 UTC (rev 3063) +++ trunk/topia-templates/src/main/java/org/nuiton/topia/templates/DTOTransformer.java 2014-04-15 13:21:50 UTC (rev 3064) @@ -29,6 +29,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.GeneratorUtil; +import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.java.ObjectModelTransformerToJava; import org.nuiton.eugene.models.object.*; @@ -134,7 +135,7 @@ } else { if (!attr.hasAssociationClass()) { String nMultType; - if (attr.isOrdered()) { + if (JavaGeneratorUtil.isOrdered(attr)) { nMultType = List.class.getName() + "<"; } else { nMultType = Collection.class.getName() + "<"; @@ -151,7 +152,7 @@ String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr); String assocClassFQN = attr.getAssociationClass().getQualifiedName(); String nMultType; - if (attr.isOrdered()) { + if (JavaGeneratorUtil.isOrdered(attr)) { nMultType = List.class.getName() + "<"; } else { nMultType = Collection.class.getName() + "<"; @@ -297,7 +298,7 @@ if (!attr.hasAssociationClass()) { //Méthodes remplacées par des accesseurs sur les classes d'assoc String nMultType; - if (attr.isOrdered()) { + if (JavaGeneratorUtil.isOrdered(attr)) { nMultType = List.class.getName() + "<" + attrTypeDTO + ">"; } else { nMultType = Collection.class.getName() + "<" + attrTypeDTO + ">"; @@ -358,7 +359,7 @@ String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr); String assocClassFQN = attr.getAssociationClass().getQualifiedName(); String nMultType; - if (attr.isOrdered()) { + if (JavaGeneratorUtil.isOrdered(attr)) { nMultType = List.class.getName() + "<" + assocClassFQN + "DTO>"; } else { nMultType = Collection.class.getName() + "<" + assocClassFQN + "DTO>"; @@ -378,7 +379,7 @@ } if (!attr.hasAssociationClass()) { String nMultType; - if (attr.isOrdered()) { + if (JavaGeneratorUtil.isOrdered(attr)) { nMultType = List.class.getName() + "<" + attrTypeDTO + ">"; } else { nMultType = Collection.class.getName() + "<" + attrTypeDTO + ">"; @@ -393,7 +394,7 @@ String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr); String assocClassFQN = attr.getAssociationClass().getQualifiedName(); String nMultType; - if (attr.isOrdered()) { + if (JavaGeneratorUtil.isOrdered(attr)) { nMultType = List.class.getName() + "<" + assocClassFQN + "DTO>"; } else { nMultType = Collection.class.getName() + "<" + assocClassFQN + "DTO>"; Modified: trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java =================================================================== --- trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java 2014-04-15 09:34:41 UTC (rev 3063) +++ trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityHibernateMappingGenerator.java 2014-04-15 13:21:50 UTC (rev 3064) @@ -28,6 +28,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.models.object.ObjectModelAssociationClass; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; @@ -422,7 +423,7 @@ // optionalAttributes += "schema=\"" + schema + "\" "; } - if (TopiaGeneratorUtil.hasIndexedStereotype(attr)) { + if (JavaGeneratorUtil.isOrdered(attr)) { String indexName = tableName + "_idx"; optionalAttributes += generateFromTagValue(HIBERNATE_ATTRIBUTE_INDEX, indexName); // optionalAttributes += "index=\"" + indexName + "\" "; @@ -436,7 +437,7 @@ }*/ } else { String optionalAttributes = ""; - if (TopiaGeneratorUtil.hasIndexedStereotype(attr)) { + if (JavaGeneratorUtil.isOrdered(attr)) { String indexName = tableName + "_idx"; optionalAttributes += generateFromTagValue(HIBERNATE_ATTRIBUTE_INDEX, indexName); // optionalAttributes += "index=\"" + indexName + "\""; @@ -571,7 +572,7 @@ protected void generateHibernateOneToMany(Writer output, ObjectModelAttribute attr, String prefix) throws IOException { - boolean needsIndex = TopiaGeneratorUtil.hasIndexedStereotype(attr); + boolean needsIndex = JavaGeneratorUtil.isOrdered(attr); boolean isInverse = attr.getReverseAttribute().isNavigable(); isInverse |= hasUnidirectionalRelationOnAbstractType(attr, model); @@ -639,7 +640,7 @@ protected void generateHibernateMany(Writer output, ObjectModelAttribute attr, String prefix) throws IOException { - boolean needsIndex = TopiaGeneratorUtil.hasIndexedStereotype(attr); + boolean needsIndex = JavaGeneratorUtil.isOrdered(attr); String attrName = getName(attr); String attrType = getType(attr); String collType = TopiaGeneratorUtil.getNMultiplicityHibernateType(attr); @@ -742,7 +743,7 @@ isInverse &= TopiaGeneratorUtil.isFirstAttribute(attr); } - boolean needsIndex = TopiaGeneratorUtil.hasIndexedStereotype(attr); + boolean needsIndex = JavaGeneratorUtil.isOrdered(attr); String cascade = ""; if (attr.isComposite() || attr.hasAssociationClass()) { cascade = " cascade=\"delete,delete-orphan\""; Modified: trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityTransformer.java =================================================================== --- trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityTransformer.java 2014-04-15 09:34:41 UTC (rev 3063) +++ trunk/topia-templates/src/main/java/org/nuiton/topia/templates/EntityTransformer.java 2014-04-15 13:21:50 UTC (rev 3064) @@ -29,6 +29,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.EugeneTagValues; +import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.java.ObjectModelTransformerToJava; import org.nuiton.eugene.models.object.ObjectModelAssociationClass; import org.nuiton.eugene.models.object.ObjectModelAttribute; @@ -39,7 +40,6 @@ import org.nuiton.eugene.models.object.ObjectModelModifier; import org.nuiton.eugene.models.object.ObjectModelOperation; import org.nuiton.eugene.models.object.ObjectModelParameter; -import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntityVisitor; import org.nuiton.topia.persistence.internal.AbstractTopiaEntity; import org.nuiton.topia.persistence.TopiaDaoSupplier; @@ -48,7 +48,6 @@ import org.nuiton.topia.persistence.TopiaEntityContextable; import org.nuiton.topia.persistence.util.TopiaEntityHelper; -import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -700,9 +699,9 @@ // List, Set or Collection ? String collectionInterface = - TopiaGeneratorUtil.getNMultiplicityInterfaceType(attribute); + JavaGeneratorUtil.getCollectionType(attribute).getName(); String collectionImpl = - TopiaGeneratorUtil.getNMultiplicityObjectType(attribute); + JavaGeneratorUtil.getCollectionInstanceType(attribute).getName(); addImport(outputInterface, collectionInterface); addImport(outputAbstract, collectionInterface); @@ -1456,7 +1455,7 @@ protected String getCollectionType(ObjectModelAttribute attribute) { String result = null; if (!associationClass && TopiaGeneratorUtil.isNMultiplicity(attribute)) { - result = TopiaGeneratorUtil.getNMultiplicityInterfaceType(attribute); + result = JavaGeneratorUtil.getCollectionType(attribute).getName(); } return result; } Modified: trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java =================================================================== --- trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java 2014-04-15 09:34:41 UTC (rev 3063) +++ trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaGeneratorUtil.java 2014-04-15 13:21:50 UTC (rev 3064) @@ -55,7 +55,6 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; @@ -727,46 +726,11 @@ * @param attr l'attribut a traiter * @return String */ - public static String getNMultiplicityInterfaceType( - ObjectModelAttribute attr) { - if (hasUniqueStereotype(attr)) { - return Set.class.getName(); - } else if (JavaGeneratorUtil.hasIndexedStereotype(attr) || attr.isOrdered()) { - return List.class.getName(); - } - return Collection.class.getName(); - } - - /** - * Renvoie le type d'objet (instance) à utiliser en fonction de l'attribut - * - * @param attr l'attribut a traiter - * @return String - */ - public static String getNMultiplicityObjectType(ObjectModelAttribute attr) { - if (hasUniqueStereotype(attr)) { - return HashSet.class.getName(); - } else if (JavaGeneratorUtil.hasIndexedStereotype(attr) || attr.isOrdered()) { - //On considère qu'on ne sait pas traiter vraiment l'attribut "ordered" - // puisqu'on va conserver l'ordre d'insertion, et non un ordre en - // fonction d'un élément donné. Donc on renvoi une ArrayList - return ArrayList.class.getName(); - } - LinkedList.class.getName(); - return ArrayList.class.getName(); - } - - /** - * Renvoie le type d'interface à utiliser en fonction de l'attribut - * - * @param attr l'attribut a traiter - * @return String - */ public static String getNMultiplicityHibernateType( ObjectModelAttribute attr) { if (hasUniqueStereotype(attr)) { return "set"; - } else if (JavaGeneratorUtil.hasIndexedStereotype(attr)) { + } else if (JavaGeneratorUtil.isOrdered(attr)) { return "list"; } //attr.isOrdered() - On génère le ordered en bag @@ -908,9 +872,9 @@ for (ObjectModelAttribute attr : aClass.getAttributes()) { fqns.add(attr.getType()); if (isNMultiplicity(attr)) { - String collectionType = getNMultiplicityInterfaceType(attr); + String collectionType = getCollectionType(attr).getName(); fqns.add(collectionType); - String collectionObject = getNMultiplicityObjectType(attr); + String collectionObject = getCollectionInstanceType(attr).getName(); fqns.add(collectionObject); } } @@ -928,9 +892,9 @@ } fqns.add(attr.getType()); if (isNMultiplicity(attr)) { - String collectionType = getNMultiplicityInterfaceType(attr); + String collectionType = getCollectionType(attr).getName(); fqns.add(collectionType); - String collectionObject = getNMultiplicityObjectType(attr); + String collectionObject = getCollectionInstanceType(attr).getName(); fqns.add(collectionObject); } } Modified: trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaStereoTypes.java =================================================================== --- trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaStereoTypes.java 2014-04-15 09:34:41 UTC (rev 3063) +++ trunk/topia-templates/src/main/java/org/nuiton/topia/templates/TopiaStereoTypes.java 2014-04-15 13:21:50 UTC (rev 3064) @@ -69,15 +69,6 @@ String STEREOTYPE_DAO = "dao"; /** - * Stéréotype pour les collections avec unicité. - * - * @see TopiaGeneratorUtil#hasUniqueStereotype(ObjectModelAttribute) - */ - @StereotypeDefinition(target = ObjectModelAttribute.class, - documentation = "To specify that an attribute is unique (Hibernate mapping)") - String STEREOTYPE_UNIQUE = "unique"; - - /** * Stéréotype pour les attributs étant des clés primaires. * * @see TopiaGeneratorUtil#hasPrimaryKeyStereotype(ObjectModelAttribute)
participants (1)
-
bleny@users.nuiton.org