Author: tchemit Date: 2009-12-17 02:08:01 +0100 (Thu, 17 Dec 2009) New Revision: 763 Added: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java Log: - no more javadoc warning :) (but still a lot to do on it...) - introduce annotations extension and use it in JavaBuilder and the java generators api - little improvement codes in importsManagerExtension - comment unused assigments Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2009-12-17 01:08:01 UTC (rev 763) @@ -60,7 +60,8 @@ } /** - * return class name fr given fully qualified name (return given name if it is not fully qualified) + * @param qualifiedName the fully qualified name to test + * @return class name fr given fully qualified name (return given name if it is not fully qualified) * eg : org.nuiton.eugene.models.ObjectClass -> ObjectClass * eg : ObjectClass-> ObjectClass */ @@ -75,8 +76,8 @@ /** * - * @param qualifiedName - * @return + * @param qualifiedName the fully qualified name to test + * @return the filename for the given qualified name. */ public static String getFilenameFromQualifiedName(String qualifiedName) { return qualifiedName.replace('.', File.separatorChar); @@ -84,8 +85,9 @@ /** * return all classifiers belonging to the given package recursively. The Collection may be empty. - * @param model - * @param packageName + * + * @param model the model where to look at + * @param packageName the package name to set for classifiers * @see ObjectModelClassifier * * @return a Collection containing all classifiers belonging to the given package recursively. @@ -102,8 +104,8 @@ } /** - * @param attribute - * @return + * @param attribute the attribute to test + * @return the type of the given attribute * @see #getAttributeType(ObjectModelParameter, boolean) */ public static String getAttributeType(ObjectModelParameter attribute) { @@ -114,8 +116,8 @@ * Retourne le type de l'attribut, c-a-d une List ou une collection * ou le type defini si la cardinalité n'est pas multiple * - * @param attribute - * @param useGenerics + * @param attribute the attribute to test + * @param useGenerics {@code true} if the attribute use a generic type * @return attribute type */ public static String getAttributeType(ObjectModelParameter attribute, @@ -123,7 +125,7 @@ String result; if (attribute instanceof ObjectModelAttribute && isNMultiplicity((ObjectModelAttribute) attribute)) { - if (((ObjectModelAttribute) attribute).isOrdered()) { + if (attribute.isOrdered()) { result = "java.util.List"; } else { result = "java.util.Collection"; @@ -139,7 +141,7 @@ /** * Indicates if the specified attribute has a primitive type (byte, boolean, ...) - * @param attribute + * @param attribute the attribute to test * @return true if the attribute has a primitive type */ public static boolean isPrimitiveAttributeType( @@ -156,7 +158,7 @@ /** * return an init value for the specified attribute - * @param attribute + * @param attribute the attribute to test * @return a String with the corresponding attribute init value */ public static String getInitValue(ObjectModelAttribute attribute) { @@ -261,7 +263,7 @@ } /** - * @param params + * @param params the paramters to treate * @return la chaine de caractere dont on a besoin pour la declaration * des parametres d'une methode. */ @@ -270,8 +272,7 @@ StringBuffer result = new StringBuffer(); for (Iterator<ObjectModelParameter> j = params.iterator(); j.hasNext();) { ObjectModelParameter parameter = j.next(); - result.append(getAttributeType(parameter) + " " - + parameter.getName()); + result.append(getAttributeType(parameter)).append(" ").append(parameter.getName()); if (j.hasNext()) { result.append(", "); } @@ -280,7 +281,7 @@ } /** - * @param params + * @param params the paramters to treate * @return la chaine de caractere qui represente chaque nom de parametre * separer par des ','. */ @@ -298,7 +299,7 @@ } /** - * @param attribute + * @param attribute the attribute to test * @return vrai si la cardinalite de l'attribut est superieur a 1, c-a-d * si MaxMultiplicity == -1 ou > 1 */ @@ -311,22 +312,19 @@ } /** - * @param attribute + * @param attribute the attribute to test * @return true is the multiplicity of the given attribute is exactly 1 */ public static boolean isOneMultiplicity(ObjectModelAttribute attribute) { - if (attribute == null) { - return false; - } - return ((attribute.getMinMultiplicity() == 1) && (attribute - .getMaxMultiplicity() == 1)); + return attribute != null && attribute.getMinMultiplicity() == 1 && + attribute.getMaxMultiplicity() == 1; } /** * * @deprecated use StringUtils.capitalize instead - * @param word - * @return + * @param word the word to capitalize + * @return the capitalized word */ @Deprecated public static String toUpperCaseFirstLetter(String word) { @@ -347,15 +345,15 @@ /** * - * @param word - * @return + * @param word the word to decapitalize + * @return the decapitalized word */ public static String toLowerCaseFirstLetter(String word) { return word.substring(0, 1).toLowerCase() + word.substring(1); } /** - * @param attribute + * @param attribute the attribute to test * @return true if the given attribute is a composition (composant of the reverse attribute) */ public static boolean isComposition(ObjectModelAttribute attribute) { @@ -438,7 +436,7 @@ } /** - * @param operation + * @param operation the operation to look at * @return la chaine de caractere dont on a besoin pour la declaration * des parametres d'une methode. */ @@ -449,8 +447,7 @@ Collection<ObjectModelParameter> params = operation.getParameters(); for (Iterator<ObjectModelParameter> j = params.iterator(); j.hasNext();) { ObjectModelParameter parameter = j.next(); - result.append(getAttributeType(parameter) + " " - + parameter.getName()); + result.append(getAttributeType(parameter)).append(" ").append(parameter.getName()); if (j.hasNext()) { result.append(", "); } @@ -459,7 +456,7 @@ } /** - * @param operation + * @param operation the operation to look at * @return la chaine de caractere qui represente chaque nom de parametre * separer par des ','. */ @@ -478,7 +475,7 @@ } /** - * @param clazz + * @param clazz the class where to look at * @return sous forme de String la liste des déclarations des attributes d'une classe donnée */ public static String getClassAttributesListDeclaration( @@ -488,7 +485,7 @@ Collection<ObjectModelAttribute> params = clazz.getAttributes(); for (Iterator<ObjectModelAttribute> j = params.iterator(); j.hasNext();) { ObjectModelAttribute attr = j.next(); - result.append(getAttributeType(attr, true) + " " + attr.getName()); + result.append(getAttributeType(attr, true)).append(" ").append(attr.getName()); if (j.hasNext()) { result.append(", "); } @@ -567,7 +564,7 @@ * serialVersionUID. Exemple, returns "123456789L". * This id will change only if the type or the order of an attribute * changes. - * @param clazz + * @param clazz the class to use * @return the generated serialVersionUID */ public static String computeSerialVersionUID(ObjectModelClass clazz) { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/ImportsManager.java 2009-12-17 01:08:01 UTC (rev 763) @@ -34,6 +34,7 @@ * generated code. * * @author thimel, chemit + * TODO-TC20091217 Move this to java package, this is specific to java generation */ public class ImportsManager { Added: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java 2009-12-17 01:08:01 UTC (rev 763) @@ -0,0 +1,61 @@ +package org.nuiton.eugene.java; + +import org.nuiton.eugene.models.object.ObjectModelElement; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * To manage annotations for any {@link org.nuiton.eugene.models.object.ObjectModelElement} of a classifier. + * <p/> + * Created: 17 déc. 2009 + * + * @author Tony Chemit <chemit@codelutin.com> Copyright Code Lutin + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ par : + * $Author: tchemit $ + * @since 2.0.0 + */ +public class AnnotationsManager { + + protected Map<ObjectModelElement, List<String>> annotations; + + /** + * Add the {@code annotation} for the given {@code element} of the classifier. + * + * @param element the element where to register the annotation + * @param annotation the annotation to register + */ + public void addAnnotation(ObjectModelElement element, String annotation) { + Map<ObjectModelElement, List<String>> map = getAnnotations(); + List<String> list = map.get(element); + if (list == null) { + list = new ArrayList<String>(); + map.put(element, list); + } + list.add(annotation); + } + + /** + * Obtain the array of annotations registred for a given element of the classifier. + * + * @param element the element where to search for annotations + * @return the annotations for the element (empty arry if none found + */ + public String[] getAnnotations(ObjectModelElement element) { + Map<ObjectModelElement, List<String>> map = getAnnotations(); + List<String> list = map.get(element); + return list == null ? new String[0] : list.toArray(new String[list.size()]); + } + + protected Map<ObjectModelElement, List<String>> getAnnotations() { + if (annotations == null) { + annotations = new HashMap<ObjectModelElement, List<String>>(); + } + return annotations; + } + +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManager.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL Added: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java 2009-12-17 01:08:01 UTC (rev 763) @@ -0,0 +1,80 @@ +package org.nuiton.eugene.java; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.models.object.ObjectModelClassifier; +import org.nuiton.eugene.models.object.ObjectModelElement; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created: 17 déc. 2009 + * + * @author Tony Chemit <chemit@codelutin.com> Copyright Code Lutin + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ par : + * $Author: tchemit $ + */ +public class AnnotationsManagerExtension { + + private static final Log log = LogFactory.getLog(AnnotationsManagerExtension.class); + + /** + * Extension static used to identify ImportsManagerExtension in ObjectModel + */ + public static final String OBJECTMODEL_EXTENSION = "annotations"; + + /** + * Map of ImportsManager with key equals to the classifier qualified name associated to + * the ImportsManager + */ + protected Map<String, AnnotationsManager> managers; + + /** + * Get the registred annotations for the given {@code element} in the given {@code classifier}. + * + * <b>Note:</b> The method always returns a {@code none null} value, but + * an empty array when no annotation when no annotation found for the element. + * + * @param classifier the classifier where is the element + * @param element the element on which searching annotations + * @return the array of annotation registred or an empty array if none. + */ + public String[] getAnnotations(ObjectModelClassifier classifier, ObjectModelElement element) { + AnnotationsManager annotationsManager = getManager(classifier); + String[] result = null; + if (annotationsManager != null) { + result = annotationsManager.getAnnotations(element); + } + return result == null ? new String[]{} : result; + } + + /** + * Get the ImportsManager associated to the classifier. If not exist, it will be created. + * + * @param classifier reference for the ImportsManager + * @return the importsManager associated to the classifier (never null) + */ + public AnnotationsManager getManager(ObjectModelClassifier classifier) { + Map<String, AnnotationsManager> managers = getManagers(); + String fqn = classifier.getQualifiedName(); + AnnotationsManager manager = managers.get(fqn); + if (manager == null) { + manager = new AnnotationsManager(); + managers.put(fqn, manager); + if (log.isDebugEnabled()) { + log.debug("Add new annotationsManager for : " + fqn); + } + } + return manager; + } + + protected Map<String, AnnotationsManager> getManagers() { + if (managers == null) { + managers = new HashMap<String, AnnotationsManager>(); + } + return managers; + } +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/java/AnnotationsManagerExtension.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ImportsManagerExtension.java 2009-12-17 01:08:01 UTC (rev 763) @@ -21,14 +21,15 @@ package org.nuiton.eugene.java; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.ImportsManager; import org.nuiton.eugene.models.object.ObjectModelClassifier; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * ImportsManagerExtension * @@ -58,24 +59,19 @@ protected Map<String, ImportsManager> managers; /** - * Public constructor for ImportsManagerExtension - */ - public ImportsManagerExtension() { - this.managers = new HashMap<String, ImportsManager>(); - } - - /** * Get the ImportsManager associated to the classifier. If not exist, it will be created. * @param classifier reference for the ImportsManager * @return the importsManager associated to the classifier (never null) */ public ImportsManager getManager(ObjectModelClassifier classifier) { - ImportsManager manager = this.managers.get(classifier.getQualifiedName()); + Map<String, ImportsManager> managers = getManagers(); + String fqn = classifier.getQualifiedName(); + ImportsManager manager = managers.get(fqn); if (manager == null) { manager = new ImportsManager(); - this.managers.put(classifier.getQualifiedName(), manager); + managers.put(fqn, manager); if (log.isDebugEnabled()) { - log.debug("Add new importsManager for : " + classifier.getQualifiedName()); + log.debug("Add new importsManager for : " + fqn); } } return manager; @@ -86,8 +82,15 @@ * @param classifier reference for the imports * @return a List of String which contains all imports for the classifier */ - public List<String> getImports(ObjectModelClassifier classifier) throws IllegalArgumentException { + public List<String> getImports(ObjectModelClassifier classifier) { ImportsManager manager = getManager(classifier); return manager.getImports(classifier.getPackageName()); } + + protected Map<String, ImportsManager> getManagers() { + if (managers == null) { + managers = new HashMap<String, ImportsManager>(); + } + return managers; + } } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2009-12-17 01:08:01 UTC (rev 763) @@ -59,14 +59,20 @@ /** * ObjectModel extension to manage imports : one ImportsManager by classifier */ - protected ImportsManagerExtension managers; + protected ImportsManagerExtension importsManagerExtension; + /** + * ObjectModel extension to manage imports : one ImportsManager by classifier + */ + protected AnnotationsManagerExtension annotationsManagerExtension; @SuppressWarnings("unchecked") public JavaBuilder(String modelName) { this.modelBuilder = new ObjectModelBuilder(modelName); - this.managers = getModel().getExtension( + this.importsManagerExtension = getModel().getExtension( ImportsManagerExtension.OBJECTMODEL_EXTENSION, ImportsManagerExtension.class); + this.annotationsManagerExtension = getModel().getExtension( + AnnotationsManagerExtension.OBJECTMODEL_EXTENSION, AnnotationsManagerExtension.class); } /** @@ -101,7 +107,7 @@ if (imports == null) { return; } - ImportsManager manager = managers.getManager(classifier); + ImportsManager manager = importsManagerExtension.getManager(classifier); imports = imports.trim(); // remove ... operator if (imports.endsWith("...")) { @@ -116,10 +122,30 @@ } /** + * Add an annotation on an element of a classifier. + * + * @param classifier where the annotation will be added. + * @param element element on which add annotation + * @param annotation annotation to add + */ + public void addAnnotation(ObjectModelClassifier classifier, ObjectModelElement element, String annotation) { + if (annotation == null) { + return; + } + AnnotationsManager manager = annotationsManagerExtension.getManager(classifier); + annotation = annotation.trim(); + + manager.addAnnotation(element, annotation); + if (log.isDebugEnabled()) { + log.debug("Add annotation for <" + classifier.getQualifiedName() + ":" + element.getName() + "> : " + annotation); + } + } + + /** * Create a new class in the model. * * @param name - * @param packageName + * @param packageName package's name of the class to create * @return a new ObjectModelClass * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createClass(java.lang.String, java.lang.String,org.nuiton.eugene.models.object.ObjectModelModifier...) */ @@ -131,7 +157,7 @@ * Create a new abstract class in the model. * * @param name - * @param packageName + * @param packageName package's name of the class to create * @return a new ObjectModelClass * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createClass(java.lang.String,java.lang.String, org.nuiton.eugene.models.object.ObjectModelModifier...) */ @@ -143,7 +169,7 @@ * Create a new interface in the model * * @param name - * @param packageName + * @param packageName package's name of the interface to create * @return a new ObjectModelInterface * @see org.nuiton.eugene.models.object.xml.ObjectModelBuilder#createInterface(java.lang.String, java.lang.String) */ @@ -155,7 +181,7 @@ * Create a new enumration in the model * * @param name - * @param packageName + * @param packageName package's name of the enumeration to create * @return a new ObjectModelEnumeration */ public ObjectModelEnumeration createEnumeration(String name, String packageName) { @@ -373,6 +399,6 @@ } public void addLiteral(ObjectModelEnumeration classifier, String name) { - modelBuilder.addLiteral(classifier,name); + modelBuilder.addLiteral(classifier, name); } } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2009-12-17 01:08:01 UTC (rev 763) @@ -86,9 +86,10 @@ /** * Generate from all classes. + * * @param output Writer for generating the java file * @param clazz Class to manage for creating an output file - * @throws IOException + * @throws IOException if any pb while writing file */ @Override public void generateFromClass(Writer output, ObjectModelClass clazz) throws IOException { @@ -100,10 +101,10 @@ // Imports, package et documentation this.generateHeader(output, clazz); - + String abstractStr = clazz.isAbstract() ? " abstract " : " "; String className = clazz.getName(); - + String extend = ""; Iterator<ObjectModelClass> j = clazz.getSuperclasses().iterator(); if (j.hasNext()) { @@ -123,6 +124,7 @@ if (log.isInfoEnabled()) { log.info(className+" : super : "+extend+", interfaces : "+implement); } + generateAnnotations(output, clazz, clazz); /*{ <%=prefix%>public<%=abstractStr%>class <%=className%>}*/ @@ -145,8 +147,8 @@ } generateInnerClassifiers(output, clazz.getInnerClassifiers()); - generateAttributes(output, clazz.getAttributes()); - generateOperations(output, clazz.getOperations()); + generateAttributes(output, clazz,clazz.getAttributes()); + generateOperations(output, clazz,clazz.getOperations()); /*{ <%=prefix%>} //<%=className%> @@ -174,6 +176,7 @@ extend += ", "; } } + generateAnnotations(output, interfacez, interfacez); /*{ <%=prefix%>public interface <%=interfaceName%>}*/ @@ -187,13 +190,25 @@ }*/ } - generateAttributes(output, interfacez.getAttributes()); - generateOperations(output, interfacez.getOperations()); + generateAttributes(output, interfacez, interfacez.getAttributes()); + generateOperations(output, interfacez, interfacez.getOperations()); /*{ <%=prefix%>} //<%=interfaceName%> }*/ } + public void generateAnnotations(Writer output,ObjectModelClassifier clazz, ObjectModelElement element) throws IOException { + AnnotationsManagerExtension managers = getModel().getExtension(AnnotationsManagerExtension.OBJECTMODEL_EXTENSION, + AnnotationsManagerExtension.class); + String[] annotations = managers.getAnnotations(clazz,element); + for (String annotation : annotations) { + if (!annotation.startsWith("@")) { + annotation = "@" + annotation; + } +/*{<%=annotation%> +}*/ + } + } @Override public void generateFromEnum(Writer output, ObjectModelEnumeration enumz) throws IOException { @@ -211,6 +226,7 @@ ObjectModelClassifier p = j.next(); extend += GeneratorUtil.getSimpleName(p.getQualifiedName()); } + generateAnnotations(output, enumz, enumz); /*{ <%=prefix%>public enum <%=enumzName%>}*/ @@ -235,8 +251,8 @@ }*/ } } - this.generateAttributes(output, enumz.getAttributes()); - this.generateOperations(output, enumz.getOperations()); + this.generateAttributes(output, enumz, enumz.getAttributes()); + this.generateOperations(output, enumz, enumz.getOperations()); /*{ <%=prefix%>} //<%=enumzName%> }*/ @@ -280,12 +296,13 @@ } } - + /** * Generate Header for a classifier : Package, Documentation, Imports and Classifier signature. + * * @param output Writer for generating the java file * @param classifier Classifier for generate header - * @throws IOException + * @throws IOException if any pb while writing file */ protected void generateHeader(Writer output, ObjectModelClassifier classifier) throws IOException { if (classifier.isInner()) { @@ -308,11 +325,13 @@ /** * Generate attributes from a collection of ObjectModelAttribute. + * * @param output Writer for generating the java file + * @param clazz classifier in generation * @param attributes Collection of ObjectModelAttribute to generate - * @throws IOException + * @throws IOException if any pb while writing file */ - protected void generateAttributes(Writer output, Collection<ObjectModelAttribute> attributes) throws IOException { + protected void generateAttributes(Writer output,ObjectModelClassifier clazz, Collection<ObjectModelAttribute> attributes) throws IOException { for (ObjectModelAttribute attr : attributes) { @@ -344,11 +363,13 @@ /** * Generate operations from a collection of ObjectModelOperation + * * @param output Writer for generating the java file + * @param clazz classifier in generation * @param operations Collection of ObjectModelOperation to generate - * @throws IOException + * @throws IOException if any pb while writing file */ - protected void generateOperations(Writer output, Collection<ObjectModelOperation> operations) throws IOException { + protected void generateOperations(Writer output,ObjectModelClassifier clazz, Collection<ObjectModelOperation> operations) throws IOException { for (ObjectModelOperation op : operations) { String opName = op.getName(); /*{<%=prefix%> /** @@ -372,7 +393,7 @@ String opVisibility = op.getVisibility(); String opStatic = op.isStatic() ? "static " : ""; String opAbstract = op.isAbstract() ? "abstract " : ""; - + ObjectModelParameter returnParam = op.getReturnParameter(); String opReturn = ""; if (returnParam != null) { @@ -403,7 +424,7 @@ comma = ", "; } /*{)}*/ - + comma = " throws "; for (String exception : exceptions) { String exceptionName = GeneratorUtil.getSimpleName(exception); @@ -422,5 +443,5 @@ } } } - + } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2009-12-17 01:08:01 UTC (rev 763) @@ -203,4 +203,8 @@ public void setDocumentation(ObjectModelElement element, String documentation) { builder.setDocumentation(element, documentation); } + + public void addAnnotation(ObjectModelClassifier classifier, ObjectModelElement element, String annotation) { + builder.addAnnotation(classifier, element, annotation); + } } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2009-12-17 01:08:01 UTC (rev 763) @@ -22,7 +22,6 @@ import java.util.Collection; import java.util.List; -import org.nuiton.eugene.ImportsManager; import org.nuiton.eugene.models.Model; /** @@ -92,7 +91,7 @@ /** * Returns the interface corresponding to the given qualified name, or null if the model contains no interface for this qualified name. - * @param qualifiedInterfaceName - the qualified name of the interface to retrieve. + * @param qualifiedInterfaceName the qualified name of the interface to retrieve. * * @return the ObjectModelInterface of the found interface, or null if the model contains no interface for this qualified name. */ @@ -109,7 +108,7 @@ /** * Return the enumeration corresponding to the given qualified name - * @param qualifiedEnumerationName + * @param qualifiedEnumerationName the fully qualified name of the enumeration to retrieve. * @return the ObjectModelEnumeration of the found enumeration or null if the model contains no enumeration for this qualified name. */ ObjectModelEnumeration getEnumeration(String qualifiedEnumerationName); Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2009-12-17 01:08:01 UTC (rev 763) @@ -71,7 +71,7 @@ /** * TODO a tester - * @return + * @return the objectModel */ protected ObjectModelImpl getModel() { if (objectModelImpl != null) { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-12-17 00:03:00 UTC (rev 762) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2009-12-17 01:08:01 UTC (rev 763) @@ -53,7 +53,10 @@ * @plexus.component role="org.nuiton.eugene.models.Model" role-hint="objectmodel" */ public class ObjectModelImpl implements ObjectModel { - + /** + * logger + */ + private static final Log log = LogFactory.getLog(ObjectModelImpl.class); protected String name = null; protected String version = null; protected Map<String, ObjectModelClass> classes = new HashMap<String, ObjectModelClass>(); @@ -67,7 +70,6 @@ * The key defined must be unique to get the significative extension associated to */ private Map<String, Object> extensions = new HashMap<String, Object>(); - private static Log log = LogFactory.getLog(ObjectModelImpl.class); public void setName(String name) { this.name = name; @@ -79,7 +81,7 @@ @Override public String getVersion() { - return this.version; + return version; } public void addClass(ObjectModelClassImpl clazz) { @@ -104,7 +106,7 @@ // nouvelle classe et l'ajouter à la précédente si nécessaire. mergeClasses(initialClazz, clazz); - clazz = initialClazz; +// clazz = initialClazz; } } //return clazz; @@ -129,14 +131,14 @@ ObjectModelAssociationClassImpl initialClazz = (ObjectModelAssociationClassImpl) initialElement; mergeAssociationClasses(initialClazz, clazz); - clazz = initialClazz; +// clazz = initialClazz; } } //return clazz; } public void addComment(String comment) { - this.comments.add(comment); + comments.add(comment); } /** @@ -238,7 +240,7 @@ ObjectModelInterfaceImpl initialInterfacez = (ObjectModelInterfaceImpl) initialElement; mergeClassifiers(initialInterfacez, interfacez); - interfacez = initialInterfacez; +// interfacez = initialInterfacez; } } //return interfacez;