r1281 - trunk/eugene/src/main/java/org/nuiton/eugene/java
Author: athimel Date: 2013-07-08 09:30:17 +0200 (Mon, 08 Jul 2013) New Revision: 1281 Url: http://nuiton.org/projects/eugene/repository/revisions/1281 Log: refs #2523 Add @Generated on each generated class : done but issue can't be closed since #2738 is not resolved Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2013-06-14 16:24:07 UTC (rev 1280) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2013-07-08 07:30:17 UTC (rev 1281) @@ -53,10 +53,13 @@ import java.net.URL; import java.util.Collection; import java.util.Collections; +import java.util.Date; import java.util.HashSet; import java.util.Map; import java.util.Set; +import javax.annotation.Generated; + /** * Created: 28 oct. 2009 * @@ -115,23 +118,49 @@ } } + /** + * Add the {@link Generated} annotation to the given {@link ObjectModelClassifier} + * + * @param element the element to be generated on which the annotation will be added + */ + // TODO AThimel 06/07/13 Maybe be skipped by configuration ? + protected void addGeneratedAnnotation(ObjectModelClassifier element) { + addImport(element, Generated.class); + + // TODO AThimel 08/07/13 Fix syntax as soon as it is possible to use annotations with parameters : http://www.nuiton.org/issues/2738 + String annotationName = Generated.class.getSimpleName(); + String generatorName = getClass().getName(); + Date now = new Date(); + String annotationText = String.format("%s(value = \"%s\", date = \"%s\")", annotationName, generatorName, now); + + addAnnotation(element, element, annotationText); + } + protected ObjectModelClass createClass(String name, String packageName) { - return builder.createClass(name, packageName); + ObjectModelClass result = builder.createClass(name, packageName); + addGeneratedAnnotation(result); + return result; } public ObjectModelEnumeration createEnumeration(String name, String packageName) { - return builder.createEnumeration(name, packageName); + ObjectModelEnumeration result = builder.createEnumeration(name, packageName); + addGeneratedAnnotation(result); + return result; } protected ObjectModelClass createAbstractClass(String name, String packageName) { - return builder.createAbstractClass(name, packageName); + ObjectModelClass result = builder.createAbstractClass(name, packageName); + addGeneratedAnnotation(result); + return result; } protected ObjectModelInterface createInterface(String name, String packageName) { - return builder.createInterface(name, packageName); + ObjectModelInterface result = builder.createInterface(name, packageName); + addGeneratedAnnotation(result); + return result; } protected void setSuperClass(ObjectModelClass classifier,
participants (1)
-
athimelï¼ users.nuiton.org