r2396 - in trunk/topia-persistence/src: main/java/org/nuiton/topia/generator test/java/org/nuiton/topia test/java/org/nuiton/topia/test test/java/org/nuiton/topia/test/ano1882 test/xmi
Author: bleny Date: 2012-01-09 11:17:56 +0100 (Mon, 09 Jan 2012) New Revision: 2396 Url: http://nuiton.org/repositories/revision/topia/2396 Log: #1882: Generated code doesn't compile since #1855 Added: trunk/topia-persistence/src/test/java/org/nuiton/topia/test/ trunk/topia-persistence/src/test/java/org/nuiton/topia/test/ano1882/ trunk/topia-persistence/src/test/java/org/nuiton/topia/test/ano1882/DAOAbstractTransformerTest.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java trunk/topia-persistence/src/test/xmi/topiatest.zargo 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 2012-01-09 10:15:16 UTC (rev 2395) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDAOTransformer.java 2012-01-09 10:17:56 UTC (rev 2396) @@ -617,7 +617,7 @@ // System.out.println("Query : " + query); // List<<%=attrType%>> list = dao.findAllByQuery(query); - + String removeName = getJavaBeanMethodName("remove", reverseAttrName); body.append("" /*{ { @@ -629,7 +629,7 @@ .addEntity("main", <%=providerFQN%>(<%=attrType%>.class)).list(); for (<%=attrType%> item : list) { - item.remove<%=StringUtils.capitalize(reverseAttrName)%>(entity); + item.<%=removeName%>(entity); } } }*/ @@ -641,6 +641,8 @@ // THIMEL: J'ai remplacé reverse.getName() par reverseAttrName sans certitude addImport(result, attrType); String attrSimpleType = TopiaGeneratorUtil.getClassNameFromQualifiedName(attrType); + String getName = getJavaBeanMethodName("get", reverseAttrName); + String setName = getJavaBeanMethodName("set", reverseAttrName); body.append("" /*{ @@ -651,8 +653,8 @@ for (<%=attrSimpleType%> item : list) { // sletellier : Set null only if target is concerned by deletion - if (entity.equals(item.get<%=StringUtils.capitalize(reverseAttrName)%>())) { - item.set<%=StringUtils.capitalize(reverseAttrName)%>(null); + if (entity.equals(item.<%=getName%>())) { + item.<%=setName%>(null); } }*/ ); @@ -803,12 +805,11 @@ } // found something to seek - String methodNameSuffix = StringUtils.capitalize(attrName); String methodName; if (TopiaGeneratorUtil.isNMultiplicity(attr)) { - methodName = "findAllContains" + methodNameSuffix; + methodName = getJavaBeanMethodName("findAllContains", attrName); } else { - methodName = "findAllBy" + methodNameSuffix; + methodName = getJavaBeanMethodName("findAllBy", attrName); } String daoName = StringUtils.capitalize(usageSimpleType) + "DAO"; @@ -970,7 +971,7 @@ } ObjectModelOperation op; op = addOperation(result, - "findBy" + StringUtils.capitalize(attrName), + getJavaBeanMethodName("findBy", attrName), "E", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); @@ -983,7 +984,7 @@ ); op = addOperation(result, - "findAllBy" + StringUtils.capitalize(attrName), + getJavaBeanMethodName("findAllBy", attrName), "List<E>", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); @@ -999,7 +1000,7 @@ String assocClassName = attr.getAssociationClass().getName(); String assocClassFQN = attr.getAssociationClass().getQualifiedName(); op = addOperation(result, - "findBy" + StringUtils.capitalize(assocClassName), + getJavaBeanMethodName("findBy", assocClassName), "E", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); @@ -1012,7 +1013,7 @@ ); op = addOperation(result, - "findAllBy" + StringUtils.capitalize(assocClassName), + getJavaBeanMethodName("findAllBy", assocClassName), "List<E>", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); @@ -1038,7 +1039,7 @@ ObjectModelOperation op; // Since 2.4 do nothing, findContains and findAllContains are not generated anymore op = addOperation(result, - "findContains" + StringUtils.capitalize(attrName), + getJavaBeanMethodName("findContains", attrName), "E", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); @@ -1051,7 +1052,7 @@ ); op = addOperation(result, - "findAllContains" + StringUtils.capitalize(attrName), + getJavaBeanMethodName("findAllContains", attrName), "List<E>", ObjectModelModifier.PUBLIC); addException(op, TopiaException.class); Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOTransformer.java 2012-01-09 10:15:16 UTC (rev 2395) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityDTOTransformer.java 2012-01-09 10:17:56 UTC (rev 2396) @@ -29,14 +29,20 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.java.ObjectModelTransformerToJava; -import org.nuiton.eugene.models.object.*; -import static org.nuiton.topia.generator.TopiaGeneratorUtil.hasUnidirectionalRelationOnAbstractType; +import org.nuiton.eugene.models.object.ObjectModelAssociationClass; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelClassifier; +import org.nuiton.eugene.models.object.ObjectModelModifier; +import org.nuiton.eugene.models.object.ObjectModelOperation; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.Serializable; +import static org.nuiton.topia.generator.TopiaGeneratorUtil.hasUnidirectionalRelationOnAbstractType; + /*{generator option: parentheses = false}*/ /*{generator option: writeString = +}*/ @@ -213,9 +219,10 @@ if (isEntity(attrType)) { attrType += "DTO"; } - String capitalizedAttrName = StringUtils.capitalize(attrName); + String setterName = getJavaBeanMethodName("set", attrName); + String getterName = getJavaBeanMethodName("get", attrName); if (!GeneratorUtil.isNMultiplicity(attr)) { - op = addOperation(result, "set" + capitalizedAttrName, "void", ObjectModelModifier.PUBLIC); + op = addOperation(result, setterName, "void", ObjectModelModifier.PUBLIC); addParameter(op, attrType, "value"); setOperationBody(op, "" /*{ @@ -225,7 +232,7 @@ }*/ ); - op = addOperation(result, "get" + capitalizedAttrName, attrType, ObjectModelModifier.PUBLIC); + op = addOperation(result, getterName, attrType, ObjectModelModifier.PUBLIC); setOperationBody(op, "" /*{ return <%=attrName%>; @@ -234,7 +241,7 @@ } else { - op = addOperation(result, "set" + capitalizedAttrName, "void", ObjectModelModifier.PUBLIC); + op = addOperation(result, setterName, "void", ObjectModelModifier.PUBLIC); addParameter(op, attrType+"[]", "values"); setOperationBody(op, "" /*{ @@ -244,7 +251,7 @@ }*/ ); - op = addOperation(result, "get" + capitalizedAttrName, attrType+"[]", ObjectModelModifier.PUBLIC); + op = addOperation(result, getterName, attrType+"[]", ObjectModelModifier.PUBLIC); setOperationBody(op, "" /*{ return <%=attrName%>; @@ -255,9 +262,10 @@ String assocAttrName = TopiaGeneratorUtil.getAssocAttrName(attr); String propertyName = GeneratorUtil.toLowerCaseFirstLetter(assocAttrName); String assocClassFQN = attr.getAssociationClass().getQualifiedName(); - String capitaliedAttrName = StringUtils.capitalize(assocAttrName); + String setterName = getJavaBeanMethodName("set", assocAttrName); + String getterName = getJavaBeanMethodName("get", assocAttrName); if (!GeneratorUtil.isNMultiplicity(attr)) { - op = addOperation(result, "set" + capitaliedAttrName, "void", ObjectModelModifier.PUBLIC); + op = addOperation(result, setterName, "void", ObjectModelModifier.PUBLIC); addParameter(op, assocClassFQN + "DTO", "association"); setOperationBody(op, "" /*{ @@ -267,7 +275,7 @@ }*/ ); - op = addOperation(result, "get" + capitaliedAttrName, assocClassFQN + "DTO", ObjectModelModifier.PUBLIC); + op = addOperation(result, getterName, assocClassFQN + "DTO", ObjectModelModifier.PUBLIC); setOperationBody(op, "" /*{ return <%=propertyName%>; @@ -275,7 +283,7 @@ ); } else { - op = addOperation(result, "set" + capitaliedAttrName, "void", ObjectModelModifier.PUBLIC); + op = addOperation(result, setterName, "void", ObjectModelModifier.PUBLIC); addParameter(op, assocClassFQN + "DTO[]", "values"); setOperationBody(op, "" /*{ @@ -285,7 +293,7 @@ }*/ ); - op = addOperation(result, "get" + capitaliedAttrName, assocClassFQN + "DTO[]", ObjectModelModifier.PUBLIC); + op = addOperation(result, getterName, assocClassFQN + "DTO[]", ObjectModelModifier.PUBLIC); setOperationBody(op, "" /*{ return this.<%=propertyName%>; Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2012-01-09 10:15:16 UTC (rev 2395) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/EntityHibernateMappingGenerator.java 2012-01-09 10:17:56 UTC (rev 2396) @@ -34,10 +34,6 @@ * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision$ * -* Mise a jour: $Date$ -* par : $Author$ -* Mise a jour: $Date$ -* par : $Author$ */ package org.nuiton.topia.generator; @@ -51,6 +47,7 @@ import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelGenerator; +import java.beans.Introspector; import java.io.File; import java.io.IOException; import java.io.Writer; @@ -336,7 +333,7 @@ } protected String getName(ObjectModelAttribute attr, boolean isAssoc) { - String result = TopiaGeneratorUtil.toLowerCaseFirstLetter(attr.getName()); + String result = Introspector.decapitalize(attr.getName()); if (attr.hasAssociationClass() && !isAssoc) { result = TopiaGeneratorUtil.getAssocAttrName(attr); } @@ -564,7 +561,7 @@ boolean isInverse = attr.getReverseAttribute().isNavigable(); isInverse |= hasUnidirectionalRelationOnAbstractType(attr, model); - String attrName = getName(attr); + String attrName = getName(attr); // ??? String attrType = getType(attr); String reverseAttrDBName = TopiaGeneratorUtil.getReverseDbName(attr); String orderBy = generateFromTagValue(HIBERNATE_ATTRIBUTE_ORDER_BY, TopiaGeneratorUtil.getOrderByTagValue(attr)); Added: trunk/topia-persistence/src/test/java/org/nuiton/topia/test/ano1882/DAOAbstractTransformerTest.java =================================================================== --- trunk/topia-persistence/src/test/java/org/nuiton/topia/test/ano1882/DAOAbstractTransformerTest.java (rev 0) +++ trunk/topia-persistence/src/test/java/org/nuiton/topia/test/ano1882/DAOAbstractTransformerTest.java 2012-01-09 10:17:56 UTC (rev 2396) @@ -0,0 +1,57 @@ +package org.nuiton.topia.test.ano1882; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.topia.TestHelper; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaNotFoundException; +import org.nuiton.topia.TopiaTestDAOHelper; +import org.nuiton.topia.persistence.NaturalIdTest; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; + +public class DAOAbstractTransformerTest { + + private static final Log log = LogFactory.getLog(NaturalIdTest.class); + + protected static File testBasedir; + + @BeforeClass + public static void setUpClass() throws Exception { + + testBasedir = TestHelper.getTestBasedir(NaturalIdTest.class); + } + + protected TopiaContext initTopiaContext(String testName) throws IOException, TopiaNotFoundException { + TopiaContext root = TestHelper.initTopiaContext(testBasedir, + "/TopiaContextImpl.properties", + testName); + return root; + } + + @Test + public void testAno1882() throws Exception { + TopiaContext rootContext = initTopiaContext("testAno1882"); + TopiaContext transaction = rootContext.beginTransaction(); + try { + FrenchCompanyDAO dao = TopiaTestDAOHelper.getFrenchCompanyDAO(transaction); + SIRETDAO siretDAO = TopiaTestDAOHelper.getSIRETDAO(transaction); + SIRET siret = siretDAO.create(); + FrenchCompany entity = + dao.create( + FrenchCompany.PROPERTY_S_IREN, null, + FrenchCompany.PROPERTY_SIREN2, null, + FrenchCompany.PROPERTY_S_IRET, Arrays.asList(siret), + FrenchCompany.PROPERTY_SIRET2, null); + transaction.commitTransaction(); + dao.delete(entity); + transaction.commitTransaction(); + } finally { + rootContext.closeContext(); + } + } +} Modified: trunk/topia-persistence/src/test/xmi/topiatest.zargo =================================================================== (Binary files differ)
participants (1)
-
bleny@users.nuiton.org