Author: tchemit Date: 2009-12-14 03:54:07 +0100 (Mon, 14 Dec 2009) New Revision: 1700 Modified: branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DTOGenerator.java branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOGenerator.java branches/from2.2.2-eugene2-beta/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java Log: - use eugene goal generate-model-files - use new transformer - fix deprecated method Modified: branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml 2009-12-14 02:09:58 UTC (rev 1699) +++ branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml 2009-12-14 02:54:07 UTC (rev 1700) @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> @@ -135,22 +136,46 @@ <artifactId>maven-eugene-plugin</artifactId> <executions> <execution> + <id>Test Generator models</id> + <phase>generate-test-sources</phase> + <configuration> + <testPhase>true</testPhase> + <modelType>objectmodel</modelType> + <includes> + <include>src/test/xmi:**/*.zargo</include> + </includes> + <outputDirectory>target/generated-sources/test-models</outputDirectory> + <extraClassPathDirectory>target/classes</extraClassPathDirectory> + <fullPackagePath>org.nuiton.topia</fullPackagePath> + <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver> + </configuration> + <goals> + <goal>generate-model-files</goal> + </goals> + </execution> + <execution> <id>Test Generator</id> <phase>generate-test-sources</phase> <configuration> <testPhase>true</testPhase> <reader>org.nuiton.eugene.ObjectModelReader</reader> <includes>**/*.objectmodel</includes> - <templates>org.nuiton.topia.generator.TopiaMetaGenerator,org.nuiton.topia.generator.ObjectModelTransformerToJavaInterface,org.nuiton.topia.generator.ObjectModelTransformerToJavaBean</templates> - <fullPackagePath>org.nuiton.topia</fullPackagePath> - <extractedPackages>org.nuiton.topia</extractedPackages> + <templates>org.nuiton.topia.generator.TopiaMetaGenerator, + org.nuiton.topia.generator.ObjectModelTransformerToJavaInterface, + org.nuiton.topia.generator.ObjectModelTransformerToJavaBean, + org.nuiton.topia.generator.DAOHelperTransformer, + org.nuiton.topia.generator.DAOTransformer, + org.nuiton.topia.generator.DAOAbstractTransformer + </templates> + <excludeTemplates> + <template>org.nuiton.topia.generator.DAOHelperGenerator</template> + <template>org.nuiton.topia.generator.DAOGenerator</template> + <template>org.nuiton.topia.generator.DAOAbstractGenerator</template> + </excludeTemplates> <defaultPackage>org.nuiton.topia</defaultPackage> <extraClassPathDirectory>target/classes</extraClassPathDirectory> - <resolver>org.nuiton.util.FasterCachedResourceResolver</resolver> </configuration> <goals> - <goal>zargo2xmi</goal> - <goal>xmi2objectmodel</goal> <goal>generate</goal> </goals> </execution> Modified: branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2009-12-14 02:09:58 UTC (rev 1699) +++ branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2009-12-14 02:54:07 UTC (rev 1700) @@ -7,7 +7,6 @@ import org.nuiton.eugene.Template; import org.nuiton.eugene.java.ObjectModelTransformerToJava; import org.nuiton.eugene.models.object.*; -import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; @@ -49,9 +48,8 @@ String clazzName = clazz.getName(); String clazzFQN = clazz.getQualifiedName(); - //FIXME can not add a generic class ? -// ObjectModelClass result = createAbstractClass(clazzName + "DAOAbstract2", clazz.getPackageName()); - ObjectModelClass result = createAbstractClass(clazzName + "DAOAbstract2<E extends " + clazzName + ">", clazz.getPackageName()); + ObjectModelClass result = createAbstractClass(clazzName + "DAOAbstract<E extends " + clazzName + ">", clazz.getPackageName()); + // super class String extendClass = ""; @@ -59,23 +57,20 @@ extendClass += parent.getQualifiedName(); if (parent.hasStereotype(TopiaGeneratorUtil.STEREOTYPE_ENTITY)) { extendClass += "DAOImpl<E>"; + // in java no multi-inheritance break; } -// if (i.hasNext()) { -// extendClass += ", "; -// } } if (extendClass.length() == 0) { - addImport(result, TopiaDAOImpl.class); - extendClass += "TopiaDAOImpl<E>"; + extendClass += TopiaDAOImpl.class.getName() + "<E>"; } - if (log.isInfoEnabled()) { - log.info("super class = "+extendClass); + if (log.isDebugEnabled()) { + log.debug("super class = "+extendClass); } setSuperClass(result, extendClass); - addInterface(result,"TopiaDAO<E>"); + addInterface(result, TopiaDAO.class.getName() + "<E>"); // imports @@ -88,7 +83,6 @@ } addImport(result, List.class); addImport(result, Arrays.class); - addImport(result, TopiaDAO.class); addImport(result, TopiaException.class); addImport(result, TopiaContextImplementor.class); @@ -121,8 +115,8 @@ op = addOperation(result,"getEntityClass","Class<E>", ObjectModelModifier.PUBLIC); setOperationBody(op,"" /*{ - return (Class<E>)<%=clazzName%>.class; -}*/ + return (Class<E>)<%=clazzName%>.class; + }*/ ); @@ -159,7 +153,7 @@ " and secondary.<%=attrReverseDBName%>='" + entity.getTopiaId() + "'") .addEntity("main", <%=providerFQN%>(<%=attrType%>.class)).list(); for (<%=attrType%> item : list) { - item.remove<%=TopiaGeneratorUtil.capitalize(reverseAttrName)%>(entity); + item.remove<%=StringUtils.capitalize(reverseAttrName)%>(entity); } } }*/ @@ -177,7 +171,7 @@ .getDAO(<%=attrType%>.class) .findAllByProperties("<%=reverseAttrName%>", entity); for (<%=attrType%> item : list) { - item.set<%=GeneratorUtil.capitalize(reverseAttrName)%>(null); + item.set<%=StringUtils.capitalize(reverseAttrName)%>(null); }*/ ); if(attr.isAggregate()){ @@ -191,7 +185,7 @@ /*{ } } - }*/ +}*/ ); } @@ -199,7 +193,7 @@ body.append("" /*{ super.delete(entity); -}*/ + }*/ ); setOperationBody(op,body.toString()); @@ -271,7 +265,8 @@ buffer.append("" /*{ } - return resultPermissions;}*/ + return resultPermissions; + }*/ ); setOperationBody(op,buffer.toString()); @@ -303,7 +298,8 @@ resultPermissions.add(permission); } } - return resultPermissions;}*/ + return resultPermissions; + }*/ ); } } @@ -322,7 +318,6 @@ ObjectModelOperation op2; op2 = addOperation(result, op.getName(), op.getReturnType(), ObjectModelModifier.ABSTRACT, ObjectModelModifier.toValue(op.getVisibility())); -// setOperationBody(op2, " "); setDocumentation(op2, op.getDocumentation()); // parameters @@ -382,7 +377,8 @@ } } else { buffer.append("" -/*{ return null;}*/ +/*{ return null; + }*/ ); } return buffer.toString(); @@ -403,7 +399,8 @@ setOperationBody(op,"" /*{ E result = findByProperty("<%=propertyName%>", v); - return result;}*/ + return result; + }*/ ); op = addOperation(result, "findAllBy" + StringUtils.capitalize(attrName), "E", ObjectModelModifier.PUBLIC); @@ -413,7 +410,8 @@ setOperationBody(op,"" /*{ E result = findByProperty("<%=propertyName%>", v); - return result;}*/ + return result; + }*/ ); if (attr.hasAssociationClass()) { @@ -422,22 +420,23 @@ op = addOperation(result, "findBy" + StringUtils.capitalize(assocClassName), "E", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); addParameter(op, assocClassFQN, "value"); - setDocumentation(op, "Retourne le premier élément trouvé ayant comme valeur pour l'attribut " + TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName) + " le paramètre\n"); + setDocumentation(op, "Retourne le premier élément trouvé ayant comme valeur pour l'attribut " + TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName) + " le paramètre."); setOperationBody(op, "" /*{ E result = findByProperty("<%=TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName)%>", value); - return result;}*/ + return result; + }*/ ); op = addOperation(result, "findAllBy" + StringUtils.capitalize(assocClassName), "List<E>", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); addParameter(op, assocClassFQN, "value"); - setDocumentation(op, "Retourne les éléments ayant comme valeur pour l'attribut " + TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName) + " le paramètre." - ); + setDocumentation(op, "Retourne les éléments ayant comme valeur pour l'attribut " + TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName) + " le paramètre."); setOperationBody(op,"" /*{ List<E> result = findAllByProperty("<%=TopiaGeneratorUtil.toLowerCaseFirstLetter(assocClassName)%>", value); - return result;}*/ + return result; + }*/ ); } } @@ -454,7 +453,8 @@ setOperationBody(op,"" /*{ E result = findContainsProperties("<%=TopiaGeneratorUtil.toLowerCaseFirstLetter(attrName)%>", Arrays.asList(v)); - return result;}*/ + return result; + }*/ ); op = addOperation(result, "findAllContains" + StringUtils.capitalize(attrName), "List<E>", ObjectModelModifier.PUBLIC); @@ -464,7 +464,8 @@ setOperationBody(op, "" /*{ List<E> results = findAllContainsProperties("<%=TopiaGeneratorUtil.toLowerCaseFirstLetter(attrName)%>", Arrays.asList(v)); - return results;}*/ + return results; + }*/ ); } Modified: branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DTOGenerator.java =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DTOGenerator.java 2009-12-14 02:09:58 UTC (rev 1699) +++ branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/DTOGenerator.java 2009-12-14 02:54:07 UTC (rev 1700) @@ -49,6 +49,9 @@ import org.nuiton.eugene.models.object.ObjectModelClassifier; import org.nuiton.eugene.models.object.ObjectModelInterface; +// do not remove me :) +import org.apache.commons.lang.StringUtils; + /** * DTO generator */ @@ -382,13 +385,13 @@ if (!GeneratorUtil.isNMultiplicity(attr)) { if (!attr.hasAssociationClass()) { -/*{ public void set<%=GeneratorUtil.capitalize(attrName)%>(<%=attrTypeDTO%> value) { +/*{ public void set<%=StringUtils.capitalize(attrName)%>(<%=attrTypeDTO%> value) { <%=attrTypeDTO%> oldValue = this.<%=attrName%>; this.<%=attrName%> = value; p.firePropertyChange("<%=attrName%>", oldValue, value); } - public <%=attrTypeDTO%> get<%=GeneratorUtil.capitalize(attrName)%>() { + public <%=attrTypeDTO%> get<%=StringUtils.capitalize(attrName)%>() { return <%=attrName%>; } @@ -399,13 +402,13 @@ if (log.isTraceEnabled()) { log.trace("assocAttrName: " + assocAttrName); } -/*{ public void set<%=GeneratorUtil.capitalize(assocAttrName)%>(<%=assocClassFQN%>DTO association) { +/*{ public void set<%=StringUtils.capitalize(assocAttrName)%>(<%=assocClassFQN%>DTO association) { <%=assocClassFQN%>DTO oldAssocation = this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%> = association; p.firePropertyChange("<%=attrName%>", oldAssocation, assocation); } - public <%=assocClassFQN%>DTO get<%=GeneratorUtil.capitalize(assocAttrName)%>() { + public <%=assocClassFQN%>DTO get<%=StringUtils.capitalize(assocAttrName)%>() { return <%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; } @@ -420,7 +423,7 @@ } else { nMultType = "Collection<" + attrTypeDTO + ">"; } -/*{ public void set<%=GeneratorUtil.capitalize(attrName)%>(<%=nMultType%> values) { +/*{ public void set<%=StringUtils.capitalize(attrName)%>(<%=nMultType%> values) { <%=nMultType%> oldValues = this.<%=attrName%>; this.<%=attrName%> = values; p.firePropertyChange("<%=attrName%>", oldValues, values); @@ -434,7 +437,7 @@ }*/ if (reverse != null && reverse.isNavigable()) { String reverseAttrName = reverse.getName(); -/*{ <%=attrName%>.set<%=GeneratorUtil.capitalize(reverseAttrName)%>(this); +/*{ <%=attrName%>.set<%=StringUtils.capitalize(reverseAttrName)%>(this); }*/ } /*{ return <%=attrName%>; @@ -447,7 +450,7 @@ }*/ if (reverse != null && reverse.isNavigable()) { String reverseAttrName = reverse.getName(); -/*{ <%=attrName%>.set<%=GeneratorUtil.capitalize(reverseAttrName)%>(null); +/*{ <%=attrName%>.set<%=StringUtils.capitalize(reverseAttrName)%>(null); }*/ } /*{ } @@ -465,7 +468,7 @@ if (log.isTraceEnabled()) { log.trace("assocAttrName: " + assocAttrName); } -/*{ public void set<%=GeneratorUtil.capitalize(assocAttrName)%>(<%=nMultType%> values) { +/*{ public void set<%=StringUtils.capitalize(assocAttrName)%>(<%=nMultType%> values) { <%=nMultType%> oldValues = this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%> = values; p.firePropertyChange("<%=attrName%>", oldValues, values); @@ -480,7 +483,7 @@ } else { nMultType = "Collection<" + attrTypeDTO + ">"; } -/*{ public <%=nMultType%> get<%=GeneratorUtil.capitalize(attrName)%>() { +/*{ public <%=nMultType%> get<%=StringUtils.capitalize(attrName)%>() { return this.<%=attrName%>; } @@ -497,7 +500,7 @@ if (log.isTraceEnabled()) { log.trace("assocAttrName: " + assocAttrName); } -/*{ public <%=nMultType%> get<%=GeneratorUtil.capitalize(assocAttrName)%>() { +/*{ public <%=nMultType%> get<%=StringUtils.capitalize(assocAttrName)%>() { return this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; } Modified: branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOGenerator.java =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOGenerator.java 2009-12-14 02:09:58 UTC (rev 1699) +++ branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOGenerator.java 2009-12-14 02:54:07 UTC (rev 1700) @@ -49,6 +49,8 @@ import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelClassifier; +// do not remove me +import org.apache.commons.lang.StringUtils; /** * Generateur d'entites abstraites. Il s'agit de l'implatation par defaut d'une * entite. Les classes generees sont surchargees par un XXXImpl lorsque l'entite @@ -93,7 +95,7 @@ import java.beans.PropertyChangeListener; /** - * Implantation DTO pour l'entité <%=GeneratorUtil.capitalize(clazzName)%>. + * Implantation DTO pour l'entité <%=StringUtils.capitalize(clazzName)%>. *) }*/ String extendClass = ""; @@ -233,25 +235,25 @@ attrType += "DTO"; } if (!GeneratorUtil.isNMultiplicity(attr)) { -/*{ public void set<%=GeneratorUtil.capitalize(attrName)%>(<%=attrType%> value) { +/*{ public void set<%=StringUtils.capitalize(attrName)%>(<%=attrType%> value) { <%=attrType%> oldValue = this.<%=attrName%>; this.<%=attrName%> = value; p.firePropertyChange("<%=attrName%>", oldValue, value); } - public <%=attrType%> get<%=GeneratorUtil.capitalize(attrName)%>() { + public <%=attrType%> get<%=StringUtils.capitalize(attrName)%>() { return <%=attrName%>; } }*/ } else { -/*{ public void set<%=GeneratorUtil.capitalize(attrName)%>(<%=attrType%>[] values) { +/*{ public void set<%=StringUtils.capitalize(attrName)%>(<%=attrType%>[] values) { <%=attrType%>[] oldValues = this.<%=attrName%>; this.<%=attrName%> = values; p.firePropertyChange("<%=attrName%>", oldValues, values); } - public <%=attrType%>[] get<%=GeneratorUtil.capitalize(attrName)%>() { + public <%=attrType%>[] get<%=StringUtils.capitalize(attrName)%>() { return this.<%=attrName%>; } @@ -261,25 +263,25 @@ String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr); String assocClassFQN = attr.getAssociationClass().getQualifiedName(); if (!GeneratorUtil.isNMultiplicity(attr)) { -/*{ public void set<%=GeneratorUtil.capitalize(assocAttrName)%>(<%=assocClassFQN%>DTO association) { +/*{ public void set<%=StringUtils.capitalize(assocAttrName)%>(<%=assocClassFQN%>DTO association) { <%=assocClassFQN%>DTO oldAssocation= this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%> = association; p.firePropertyChange("<%=attrName%>", oldAssocation, assocation); } - public <%=assocClassFQN%>DTO get<%=GeneratorUtil.capitalize(assocAttrName)%>() { + public <%=assocClassFQN%>DTO get<%=StringUtils.capitalize(assocAttrName)%>() { return <%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; } }*/ } else { -/*{ public void set<%=GeneratorUtil.capitalize(assocAttrName)%>(<%=assocClassFQN%>DTO[] values) { +/*{ public void set<%=StringUtils.capitalize(assocAttrName)%>(<%=assocClassFQN%>DTO[] values) { <%=assocClassFQN%>DTO[] oldValues = this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%> = values; p.firePropertyChange("<%=attrName%>", oldValues, values); } - public <%=assocClassFQN%>DTO[] get<%=GeneratorUtil.capitalize(assocAttrName)%>() { + public <%=assocClassFQN%>DTO[] get<%=StringUtils.capitalize(assocAttrName)%>() { return this.<%=GeneratorUtil.toLowerCaseFirstLetter(assocAttrName)%>; } @@ -319,13 +321,13 @@ //TODO Check wether this method could be used to generate getter and setters protected void generateNormalGetterAndSetterWithPropertyChangeSupport(Writer output, String attrType, String attrName) throws IOException { -/*{ public void set<%=GeneratorUtil.capitalize(attrName)%>(<%=attrType%> value) { +/*{ public void set<%=StringUtils.capitalize(attrName)%>(<%=attrType%> value) { <%=attrType%> _oldValue = this.<%=attrName%>; this.<%=attrName%> = value; p.firePropertyChange("<%=attrName%>", _oldValue, value); } - public <%=attrType%> get<%=GeneratorUtil.capitalize(attrName)%>() { + public <%=attrType%> get<%=StringUtils.capitalize(attrName)%>() { return this.<%=attrName%>; } Modified: branches/from2.2.2-eugene2-beta/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java 2009-12-14 02:09:58 UTC (rev 1699) +++ branches/from2.2.2-eugene2-beta/topia-persistence/src/test/java/org/nuiton/topiatest/deletetest/DeleteEntityTest.java 2009-12-14 02:54:07 UTC (rev 1700) @@ -153,7 +153,7 @@ * Test for deleting entities with NMultiplicity relation without association class entity. * Test DAO generation for deleting references between two entities with NMultiplicity relation. * In the test model, the two entities have both inheritance. - * @see org.nuiton.topia.generator.DAOAbstractGenerator + * @see org.nuiton.topia.generator.DAOAbstractTransformer */ @Test public void testDeleteEntityWithManyToManyRelation() {