r2158 - in trunk/topia-persistence/src: main/java/org/nuiton/topia/generator main/resources/META-INF main/resources/META-INF/services test/java/org/nuiton/topia/generator
Author: tchemit Date: 2010-11-29 00:56:18 +0100 (Mon, 29 Nov 2010) New Revision: 2158 Url: http://nuiton.org/repositories/revision/topia/2158 Log: Use euegene new ModelProperties api Add useLegacyDAO tag value Added: trunk/topia-persistence/src/main/resources/META-INF/services/ trunk/topia-persistence/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaModelPropertiesProviderTest.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2010-11-28 20:24:16 UTC (rev 2157) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/DAOAbstractTransformer.java 2010-11-28 23:56:18 UTC (rev 2158) @@ -102,7 +102,7 @@ public void transformFromModel(ObjectModel model) { usages = TopiaGeneratorUtil.searchDirectUsages(model); - extendLegacyDAO = Boolean.valueOf(model.getTagValue("useLegacyDAO")); + extendLegacyDAO = Boolean.valueOf(model.getTagValue(TopiaTagValues.TAG_USE_LEGACY_DAO)); List<ObjectModelClass> allEntities = TopiaGeneratorUtil.getEntityClasses(model, true); allEntitiesFqn = new HashSet<String>(allEntities.size()); 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 2010-11-28 20:24:16 UTC (rev 2157) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaGeneratorUtil.java 2010-11-28 23:56:18 UTC (rev 2158) @@ -30,6 +30,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.AbstractGenerator; import org.nuiton.eugene.GeneratorUtil; +import org.nuiton.eugene.ModelPropertiesUtil; import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.models.Model; import org.nuiton.eugene.models.object.ObjectModel; @@ -96,6 +97,21 @@ public static final String DEFAULT_PACKAGE = "org.codelutin.malo"; /** + * The Eugene provider of tag values and stereotypes. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.3 + */ + public static class TopiaModelPropertiesProvider extends ModelPropertiesUtil.ModelPropertiesProvider { + + @Override + public void init() throws IllegalAccessException { + scanStereotypeClass(TopiaStereoTypes.class); + scanTagValueClass(TopiaTagValues.class); + } + } + + /** * Renvoie le package par défaut pour le générateur donné * * @param generator le générateur donné Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java 2010-11-28 20:24:16 UTC (rev 2157) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaStereoTypes.java 2010-11-28 23:56:18 UTC (rev 2158) @@ -25,11 +25,12 @@ package org.nuiton.topia.generator; import org.nuiton.eugene.EugeneStereoTypes; -import org.nuiton.eugene.StereotypeDefinition; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClassifier; import org.nuiton.eugene.models.object.ObjectModelOperation; +import static org.nuiton.eugene.ModelPropertiesUtil.StereotypeDefinition; + /** * All extra stereotypes usable in topia generators. * Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java 2010-11-28 20:24:16 UTC (rev 2157) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaTagValues.java 2010-11-28 23:56:18 UTC (rev 2158) @@ -25,7 +25,6 @@ package org.nuiton.topia.generator; import org.nuiton.eugene.EugeneTagValues; -import org.nuiton.eugene.TagValueDefinition; import org.nuiton.eugene.models.Model; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; @@ -36,6 +35,8 @@ import org.nuiton.eugene.models.object.ObjectModelOperation; import org.nuiton.topia.persistence.TopiaEntityEnum; +import static org.nuiton.eugene.ModelPropertiesUtil.TagValueDefinition; + /** * All extra tag values usable in topia generators. * @@ -290,7 +291,16 @@ @TagValueDefinition(target = {ObjectModelAttribute.class}) String TAG_TYPE = "type"; + /** + * To use the legacy DAO generation. + * + * @see TopiaGeneratorUtil#getTypeTagValue(ObjectModelAttribute) + * @since 2.4.4 + */ + @TagValueDefinition(target = {ObjectModel.class}) + String TAG_USE_LEGACY_DAO = "useLegacyDAO"; + /** * Tag pour specifier l'exception principale de l'application. * Utiliser dans le ServiceTransformer ou QueryHelperTransformer pour etre Added: trunk/topia-persistence/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider =================================================================== --- trunk/topia-persistence/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider (rev 0) +++ trunk/topia-persistence/src/main/resources/META-INF/services/org.nuiton.eugene.ModelPropertiesUtil$ModelPropertiesProvider 2010-11-28 23:56:18 UTC (rev 2158) @@ -0,0 +1 @@ +org.nuiton.topia.generator.TopiaGeneratorUtil$TopiaModelPropertiesProvider \ No newline at end of file Added: trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaModelPropertiesProviderTest.java =================================================================== --- trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaModelPropertiesProviderTest.java (rev 0) +++ trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaModelPropertiesProviderTest.java 2010-11-28 23:56:18 UTC (rev 2158) @@ -0,0 +1,56 @@ +package org.nuiton.topia.generator; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.eugene.ModelPropertiesUtil; +import org.nuiton.eugene.models.object.ObjectModelClassifier; +import org.nuiton.eugene.models.object.ObjectModelOperation; + +/** + * To test {@link TopiaGeneratorUtil.TopiaModelPropertiesProvider}. + * + * @author tchemit <chemit@codelutin.com> + * @since 2.3 + */ +public class TopiaModelPropertiesProviderTest { + + protected ModelPropertiesUtil.ModelPropertiesProvider provider; + + @Before + public void setUp() throws Exception { + provider = new TopiaGeneratorUtil.TopiaModelPropertiesProvider(); + provider.init(); + } + + @Test + public void testGetTagValueTarget() throws Exception { + testTagValue(TopiaTagValues.TAG_PERSISTENCE_TYPE, ObjectModelClassifier.class); + //TODO Finish with other tag values... + } + + @Test + public void testGetStereotypeTarget() throws Exception { + + testStereotype(TopiaStereoTypes.STEREOTYPE_DAO, ObjectModelClassifier.class, ObjectModelOperation.class); + //TODO Finish with other stereotypes... + } + + @Test + public void testGetStore() throws Exception { + } + + protected void testStereotype(String name, Class<?>... expected) { + Class<?>[] classes = provider.getStereotypeTarget(name); + Assert.assertNotNull("Could not find target for " + name, classes); + Assert.assertEquals("Should have " + expected.length + " targets for " + name + " but had " + classes.length, classes.length, expected.length); + Assert.assertArrayEquals(expected, classes); + } + + protected void testTagValue(String name, Class<?>... expected) { + Class<?>[] classes = provider.getTagValueTarget(name); + Assert.assertNotNull("Could not find target for " + name, classes); + Assert.assertEquals("Should have " + expected.length + " targets for " + name + " but had " + classes.length, classes.length, expected.length); + Assert.assertArrayEquals(expected, classes); + } +} Property changes on: trunk/topia-persistence/src/test/java/org/nuiton/topia/generator/TopiaModelPropertiesProviderTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native
participants (1)
-
tchemit@users.nuiton.org