r645 - trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml
Author: fdesbois Date: 2009-10-19 20:25:44 +0200 (Mon, 19 Oct 2009) New Revision: 645 Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java Log: Ano #15 : Model can be null during Digester parse. Digester use toString to show informations in DEBUG mode. toString methods used to call other methods which required model to be set. Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java 2009-10-19 14:33:16 UTC (rev 644) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java 2009-10-19 18:25:44 UTC (rev 645) @@ -17,6 +17,8 @@ package org.nuiton.eugene.models.object.xml; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; @@ -36,6 +38,8 @@ public class ObjectModelAttributeImpl extends ObjectModelParameterImpl implements ObjectModelAttribute { + private static final Log log = LogFactory.getLog(ObjectModelAttributeImpl.class); + protected String reverseAttributeName = null; protected int reverseMaxMultiplicity = -1; protected String associationType = null; @@ -50,6 +54,7 @@ super(); } + @Override public void postInit() { if (name == null) { name = GeneratorUtil.toLowerCaseFirstLetter(GeneratorUtil @@ -78,6 +83,7 @@ this.isFinal = isFinal; } + @Override public void setStatic(boolean isStatic) { this.isStatic = isStatic; } @@ -92,6 +98,7 @@ * @return a boolean indicating whether this attribute is an aggregate or * not. */ + @Override public boolean isAggregate() { return "aggregate".equals(associationType) || "shared".equals(associationType); } @@ -102,10 +109,12 @@ * @return a boolean indicating whether this attribute is an composite or * not. */ + @Override public boolean isComposite() { return "composite".equals(associationType); } + @Override public String getVisibility() { return visibility; } @@ -120,6 +129,7 @@ * @return a boolean indicating whether this attribute reference a model * classifier or not. */ + @Override public boolean referenceClassifier() { return (getClassifier() != null); } @@ -131,6 +141,7 @@ * @return the ObjectModelClassfifier referenced by this attribute or null * if it does not reference a model classifier. */ + @Override public ObjectModelClassifier getClassifier() { return getModel().getClassifier(type); } @@ -144,6 +155,7 @@ * other end of the association or null if this is not an * association, or if it is not bi-directionnal. */ + @Override public ObjectModelAttribute getReverseAttribute() { ObjectModelAttribute reverseAttribute = null; ObjectModelClassifier classifier = getClassifier(); @@ -154,6 +166,7 @@ return reverseAttribute; } + @Override public String getReverseAttributeName() { if ((reverseAttributeName == null) || ("".equals(reverseAttributeName))) { reverseAttributeName = GeneratorUtil @@ -162,10 +175,15 @@ return reverseAttributeName; } + @Override public String getName() { - if ((name == null || "".equals(name)) && getClassifier() != null) { - name = GeneratorUtil.toLowerCaseFirstLetter(getClassifier() - .getName()); + if (getModel() != null) { + // impossible de recuperer le classifier si le model est null + // En mode DEBUG Digester appel les toString et le model peut etre null lors du parse + if ((name == null || "".equals(name)) && getClassifier() != null) { + name = GeneratorUtil.toLowerCaseFirstLetter(getClassifier() + .getName()); + } } return name; } @@ -175,6 +193,7 @@ * * @see org.nuiton.eugene.models.object.ObjectModelAttribute#getReverseMaxMultiplicity() */ + @Override public int getReverseMaxMultiplicity() { return reverseMaxMultiplicity; } @@ -186,6 +205,7 @@ * @return a ObjectModelClass corresponding to the association class * associated with this association, or null if there is none. */ + @Override public ObjectModelClass getAssociationClass() { return getModel().getClass(associationClassName); } @@ -197,6 +217,7 @@ * @return a boolean indicating whether this association has an associated * association class, ot not. */ + @Override public boolean hasAssociationClass() { return (getAssociationClass() != null); } @@ -206,6 +227,7 @@ * * @return a boolean indicating whether this attribute is static or not. */ + @Override public boolean isStatic() { return isStatic; } @@ -215,6 +237,7 @@ * * @return a boolean indicating whether this attribute is final or not. */ + @Override public boolean isFinal() { return isFinal; } @@ -222,6 +245,7 @@ /* * @see org.nuiton.eugene.models.object.ObjectModelAttribute#isNavigable() */ + @Override public boolean isNavigable() { return isNavigable; } @@ -229,6 +253,7 @@ /* * @see org.nuiton.eugene.models.object.ObjectModelAttribute#isOrdered() */ + @Override public boolean isOrdered() { return isIndexed() || super.isOrdered(); } @@ -236,6 +261,7 @@ /* * @see org.nuiton.eugene.models.object.ObjectModelAttribute#isIndexed() */ + @Override public boolean isIndexed() { return hasStereotype("indexed"); } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java 2009-10-19 14:33:16 UTC (rev 644) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java 2009-10-19 18:25:44 UTC (rev 645) @@ -233,19 +233,23 @@ public String toString() { StringBuffer result = new StringBuffer(); result.append("class " + getQualifiedName() + "<<" + getStereotypes() - + ">> tagvalue: " + getTagValues() + " "); - result.append("extends "); - for (Iterator<?> i = getSuperclasses().iterator(); i.hasNext();) { - result.append(((ObjectModelClassifier) i.next()).getName()); - if (i.hasNext()) { - result.append(", "); + + ">> tagvalue: " + getTagValues() + " "); + if (objectModelImpl != null) { + // impossible de recuperer les superclasses et les interfaces si le model est null + // En mode DEBUG Digester appel les toString et le model peut etre null lors du parse + result.append("extends "); + for (Iterator<?> i = getSuperclasses().iterator(); i.hasNext();) { + result.append(((ObjectModelClassifier) i.next()).getName()); + if (i.hasNext()) { + result.append(", "); + } } - } - result.append("implements "); - for (Iterator<?> i = getInterfaces().iterator(); i.hasNext();) { - result.append(((ObjectModelClassifier) i.next()).getName()); - if (i.hasNext()) { - result.append(", "); + result.append("implements "); + for (Iterator<?> i = getInterfaces().iterator(); i.hasNext();) { + result.append(((ObjectModelClassifier) i.next()).getName()); + if (i.hasNext()) { + result.append(", "); + } } } return result.toString(); Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java 2009-10-19 14:33:16 UTC (rev 644) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java 2009-10-19 18:25:44 UTC (rev 645) @@ -26,6 +26,8 @@ import java.util.List; import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClassifier; import org.nuiton.eugene.models.object.ObjectModelDependency; @@ -45,6 +47,8 @@ public abstract class ObjectModelClassifierImpl extends ObjectModelElementImpl implements ObjectModelClassifier { + private static final Log log = LogFactory.getLog(ObjectModelClassifierImpl.class); + protected boolean extern = false; protected String qualifiedName = null; @@ -58,14 +62,22 @@ protected String type = null; + @Override public String toString() { - return "" + getQualifiedName() + " implements " + getInterfaces(); + String result = "" + getQualifiedName(); + if (objectModelImpl != null) { + // impossible de recuperer les interfaces si le model est null + // En mode DEBUG Digester appel les toString et le model peut etre null lors du parse + result += " implements " + getInterfaces(); + } + return result; } public ObjectModelClassifierImpl() { super(); } + @Override public void postInit() { super.postInit(); qualifiedName = packageName + "." + name; @@ -116,14 +128,17 @@ return extern; } + @Override public String getPackageName() { return packageName; } + @Override public String getQualifiedName() { return qualifiedName; } + @Override public Collection<ObjectModelInterface> getInterfaces() { if (interfaces == null) { interfaces = new ArrayList<ObjectModelInterface>(); @@ -134,6 +149,7 @@ return interfaces; } + @Override public Collection<ObjectModelOperation> getOperations(String name) { List<ObjectModelOperation> result = new ArrayList<ObjectModelOperation>(); for (Iterator<ObjectModelOperation> i = getOperations().iterator(); i @@ -146,6 +162,7 @@ return result; } + @Override public Collection<ObjectModelOperation> getOperations() { return operations; }
participants (1)
-
fdesbois@users.nuiton.org