Index: lutingenerator/src/java/org/codelutin/generator/models/object/xml/ObjectModelImpl.java diff -u lutingenerator/src/java/org/codelutin/generator/models/object/xml/ObjectModelImpl.java:1.16 lutingenerator/src/java/org/codelutin/generator/models/object/xml/ObjectModelImpl.java:1.17 --- lutingenerator/src/java/org/codelutin/generator/models/object/xml/ObjectModelImpl.java:1.16 Thu May 19 09:18:23 2005 +++ lutingenerator/src/java/org/codelutin/generator/models/object/xml/ObjectModelImpl.java Tue Aug 16 21:56:01 2005 @@ -23,10 +23,10 @@ * * @author C�dric Pineau * Copyright Code Lutin -* @version $Revision: 1.16 $ +* @version $Revision: 1.17 $ * -* Last update : $Date: 2005/05/19 09:18:23 $ -* by : $Author: thimel $ +* Last update : $Date: 2005/08/16 21:56:01 $ +* by : $Author: bpoussin $ */ package org.codelutin.generator.models.object.xml; @@ -69,20 +69,20 @@ classes.put(clazz.getQualifiedName(), clazz); classifiers.put(clazz.getQualifiedName(), clazz); } else { - if (!(initialElement instanceof ObjectModelClassImpl)) - throw new IllegalArgumentException("\"" + clazz + "\" is incompatible with already defined element \"" + initialElement + "\""); + if (!(initialElement instanceof ObjectModelClassImpl)) + throw new IllegalArgumentException("\"" + clazz + "\" is incompatible with already defined element \"" + initialElement + "\""); ObjectModelClassImpl initialClazz = (ObjectModelClassImpl)initialElement; - + //La classe existe déjà. On va prendre tout ce que contient la - //nouvelle classe et l'ajouter à la précédente si nécessaire. - + //nouvelle classe et l'ajouter à la précédente si nécessaire. + mergeClasses(initialClazz, clazz); clazz = initialClazz; } } return clazz; } - + public ObjectModelClassImpl parsetAssociationClass(ObjectModelAssociationClassImpl clazz) { if (clazz == null) return new ObjectModelAssociationClassImpl(this, null); @@ -93,8 +93,8 @@ classes.put(clazz.getQualifiedName(), clazz); classifiers.put(clazz.getQualifiedName(), clazz); } else { - if (!(initialElement instanceof ObjectModelAssociationClassImpl)) - throw new IllegalArgumentException("\"" + clazz + "\" is incompatible with already defined element \"" + initialElement + "\""); + if (!(initialElement instanceof ObjectModelAssociationClassImpl)) + throw new IllegalArgumentException("\"" + clazz + "\" is incompatible with already defined element \"" + initialElement + "\""); ObjectModelAssociationClassImpl initialClazz = (ObjectModelAssociationClassImpl)initialElement; mergeAssociationClasses(initialClazz, clazz); @@ -134,7 +134,7 @@ * @return the ObjectModelClassifier of the found classifier, or null if the model contains no classifier for this qualified name. */ public ObjectModelClassifier getClassifier(String qualifiedClassifierName) { - return (qualifiedClassifierName == null?null:(ObjectModelClassifier) classifiers.get(qualifiedClassifierName)); + return (qualifiedClassifierName == null?null:(ObjectModelClassifier) classifiers.get(qualifiedClassifierName)); } /** @@ -163,6 +163,11 @@ return result; } + public boolean haveClass(String qualifiedClassName){ + ObjectModelClass result = (ObjectModelClass) classes.get(qualifiedClassName); + return result != null; + } + public ObjectModelInterfaceImpl parsetInterface(ObjectModelInterfaceImpl interfacez) { if (interfacez == null) return new ObjectModelInterfaceImpl(this, null); @@ -173,8 +178,8 @@ interfaces.put(interfacez.getQualifiedName(), interfacez); classifiers.put(interfacez.getQualifiedName(), interfacez); } else { - if (!(initialElement instanceof ObjectModelInterfaceImpl)) - throw new IllegalArgumentException("\"" + interfacez + "\" is incompatible with already defined element \"" + initialElement + "\""); + if (!(initialElement instanceof ObjectModelInterfaceImpl)) + throw new IllegalArgumentException("\"" + interfacez + "\" is incompatible with already defined element \"" + initialElement + "\""); ObjectModelInterfaceImpl initialInterfacez = (ObjectModelInterfaceImpl)initialElement; mergeClassifiers(initialInterfacez, interfacez); @@ -210,20 +215,20 @@ return interfaces.values(); } - /** - * Returns all comments not lied to a particular model element - * - * @return a List containing all comments for this model as Strings. - */ + /** + * Returns all comments not lied to a particular model element + * + * @return a List containing all comments for this model as Strings. + */ public List getComments() { - return comments; + return comments; } private void mergeClassifiers(ObjectModelClassifierImpl initialClazzifier, ObjectModelClassifierImpl additionalClazzifier) { Iterator it; //On n'utilise pas les parsetXXX puisque les post-init sont censés être déjà faits... - + //System.out.println("Doc initial : " + initialClazzifier.documentation); //System.out.println("Doc additional : " + additionalClazzifier.documentation); String description = ""; @@ -244,10 +249,10 @@ } } if (!description.equals("") || !sourceDoc.equals("")) - initialClazzifier.documentation = description + "--" + sourceDoc; + initialClazzifier.documentation = description + "--" + sourceDoc; //System.out.println("Doc after : " + initialClazzifier.documentation); - + for (it = additionalClazzifier.interfacesRefs.iterator(); it.hasNext(); ) { ObjectModelImplRef interfaceRef = (ObjectModelImplRef)it.next(); if (!contains(initialClazzifier.interfacesRefs, interfaceRef)) @@ -276,7 +281,7 @@ initialClazzifier.tagValues.put(tagName, additionalClazzifier.getTagValue(tagName)); } } - + /** * This method takes two ObjectModelClassImpl and merges both of them in the first one @@ -286,14 +291,14 @@ private void mergeClasses(ObjectModelClassImpl initialClazz, ObjectModelClassImpl additionalClazz) { Iterator it; mergeClassifiers(initialClazz, additionalClazz); - + for (it = additionalClazz.getAttributes().iterator(); it.hasNext();) { - ObjectModelAttributeImpl attribute = (ObjectModelAttributeImpl)it.next(); - if (!contains(initialClazz.getAttributes(), attribute)) { - initialClazz.attributes.put(attribute.getName(), attribute); - initialClazz.orderedAttributes.add(attribute); - } - } + ObjectModelAttributeImpl attribute = (ObjectModelAttributeImpl)it.next(); + if (!contains(initialClazz.getAttributes(), attribute)) { + initialClazz.attributes.put(attribute.getName(), attribute); + initialClazz.orderedAttributes.add(attribute); + } + } for (it = additionalClazz.superclassesRefs.iterator(); it.hasNext(); ) { ObjectModelImplRef superclassRef = (ObjectModelImplRef)it.next(); if (!contains(initialClazz.superclassesRefs, superclassRef)) @@ -306,7 +311,7 @@ mergeClasses(initialAssocClazz, additionalAssocClazz); Iterator it; for (it = additionalAssocClazz.participantsRefs.iterator(); it.hasNext(); ) { - ObjectModeImplAssociationClassParticipant participant = + ObjectModeImplAssociationClassParticipant participant = (ObjectModeImplAssociationClassParticipant)it.next(); if (!contains(initialAssocClazz.participantsRefs, participant)) initialAssocClazz.participantsRefs.add(participant); @@ -327,9 +332,9 @@ private boolean contains(Collection coll, ObjectModelOperationImpl toFind) { return coll.contains(toFind); //Le equals(...) de ObjectModelOperationImpl convient } - + private boolean contains(Collection coll, ObjectModelImplRef toFind) { return coll.contains(toFind); //Le equals(...) de ObjectModelImplRef convient } - + }