r1104 - in trunk: eugene/src/main/java/org/nuiton/eugene eugene/src/main/java/org/nuiton/eugene/java maven-eugene-plugin/src/it/evol-308/src/main/xmi
Author: tchemit Date: 2011-10-13 15:31:03 +0200 (Thu, 13 Oct 2011) New Revision: 1104 Url: http://nuiton.org/repositories/revision/eugene/1104 Log: Evolution #1771: Add an option to never generate a class already defined in classpath Evolution #1772: Generate enumerations present in model Added: trunk/maven-eugene-plugin/src/it/evol-308/src/main/xmi/model.zargo Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaEnumerationTransformer.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java 2011-10-12 18:54:15 UTC (rev 1103) +++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneStereoTypes.java 2011-10-13 13:31:03 UTC (rev 1104) @@ -73,13 +73,13 @@ String STEREOTYPE_ORDERED = "ordered"; /** - * Stereotype for enumeration objects to place on a classifier. + * Stereotype to skip generation for some transformer. * * @see JavaEnumerationTransformer - * @see JavaGeneratorUtil#hasBeanStereotype(ObjectModelClassifier) + * @see JavaGeneratorUtil#hasSkipStereotype(ObjectModelClassifier) */ @StereotypeDefinition(target = ObjectModelClassifier.class, - documentation = "To specify that a class is a enumeration to generate") - String STEREOTYPE_ENUMERATION = "enumeration"; + documentation = "To specify that a classifier should not been generated.") + String STEREOTYPE_SKIP= "skip"; } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2011-10-12 18:54:15 UTC (rev 1103) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2011-10-13 13:31:03 UTC (rev 1104) @@ -28,11 +28,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.EugeneTagValues; -import org.nuiton.eugene.models.object.ObjectModelAttribute; -import org.nuiton.eugene.models.object.ObjectModelClass; -import org.nuiton.eugene.models.object.ObjectModelInterface; -import org.nuiton.eugene.models.object.ObjectModelModifier; -import org.nuiton.eugene.models.object.ObjectModelOperation; +import org.nuiton.eugene.models.object.*; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; @@ -693,16 +689,12 @@ // Get name for Impl class String fqn = input.getQualifiedName() + "Impl"; - URL location = getFileInClassPath(fqn); - if (location != null) { + if (!isInClassPath(fqn)) { - if (isVerbose()) { - log.info("Will not generate ["+fqn+"] which exists : "+location); - } - // file already found in class-path, do not generate it + // already in class-path return null; } - + // Does bean own operations ? boolean hasOperations = !input.getAllOtherOperations(true).isEmpty() || !input.getOperations().isEmpty(); @@ -719,7 +711,13 @@ } protected boolean canGenerate(ObjectModelClass input) { - return JavaGeneratorUtil.hasBeanStereotype(input); + boolean b = JavaGeneratorUtil.hasBeanStereotype(input); + if (b) { + + // check if not found in class-path + b = !isInClassPath(input); + } + return b; } protected void createPropertyChangeSupport(ObjectModelClass output) { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaEnumerationTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaEnumerationTransformer.java 2011-10-12 18:54:15 UTC (rev 1103) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaEnumerationTransformer.java 2011-10-13 13:31:03 UTC (rev 1104) @@ -48,7 +48,7 @@ } protected boolean canGenerate(ObjectModelEnumeration input) { - boolean b = JavaGeneratorUtil.hasEnumerationStereotype(input); + boolean b = !JavaGeneratorUtil.hasSkipStereotype(input); if (b) { // check if not found in class-path Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2011-10-12 18:54:15 UTC (rev 1103) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2011-10-13 13:31:03 UTC (rev 1104) @@ -131,15 +131,15 @@ /** * Check if the given classifier has the - * {@link EugeneStereoTypes#STEREOTYPE_ENUMERATION} stereotype. + * {@link EugeneStereoTypes#STEREOTYPE_SKIP} stereotype. * * @param classifier classifier to test * @return {@code true} if stereotype was found, {@code false otherwise} - * @see EugeneStereoTypes#STEREOTYPE_ENUMERATION + * @see EugeneStereoTypes#STEREOTYPE_SKIP * @since 2.5 */ - public static boolean hasEnumerationStereotype(ObjectModelClassifier classifier) { - return classifier.hasStereotype(EugeneStereoTypes.STEREOTYPE_ENUMERATION); + public static boolean hasSkipStereotype(ObjectModelClassifier classifier) { + return classifier.hasStereotype(EugeneStereoTypes.STEREOTYPE_SKIP); } /** Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java 2011-10-12 18:54:15 UTC (rev 1103) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java 2011-10-13 13:31:03 UTC (rev 1104) @@ -54,8 +54,9 @@ @Override public void transformFromInterface(ObjectModelInterface input) { - // Can only generate an interface with no stereotypes - if (!input.getStereotypes().isEmpty()) { + boolean canGenerate = canGenerate(input); + if (!canGenerate) { + return; } @@ -122,4 +123,17 @@ ); } + protected boolean canGenerate(ObjectModelInterface input) { + + // check if not found in class-path + boolean b = !isInClassPath(input); + + if (b) { + + // only generate when no stereotype are on interface ? Strange !? + b = !input.getStereotypes().isEmpty(); + } + return b; + } + } Added: trunk/maven-eugene-plugin/src/it/evol-308/src/main/xmi/model.zargo =================================================================== (Binary files differ) Property changes on: trunk/maven-eugene-plugin/src/it/evol-308/src/main/xmi/model.zargo ___________________________________________________________________ Added: svn:mime-type + application/octet-stream
participants (1)
-
tchemit@users.nuiton.org