Title: [680] trunk/qdox/src/java/com/thoughtworks/qdox/model: QDOX-192: deprecate AbstractBaseJavaEntity.parent

Diff

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/AbstractBaseJavaEntity.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/AbstractBaseJavaEntity.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/AbstractBaseJavaEntity.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -37,12 +37,29 @@
 	    this.lineNumber = lineNumber;
 	}
 
+	/**
+	 *  
+	 * @return
+	 * @deprecated
+	 */
 	public JavaClassParent getParent() { 
 	    return parent; 
 	}
 
+	/**
+	 * 
+	 * @param parent
+	 * @deprecated
+	 */
 	public void setParent(JavaClassParent parent) { 
 	    this.parent = parent;
 	}
+	
+	/**
+	 * Not every entity has a parentClass, but AnnotationFieldRef requires access to it.
+	 * 
+	 * @return
+	 */
+	public JavaClass getParentClass() { return null; }
 
 }
\ No newline at end of file

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/AbstractJavaEntity.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/AbstractJavaEntity.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/AbstractJavaEntity.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -10,6 +10,8 @@
     protected List modifiers = new ArrayList();
     private String comment;
     private DocletTag[] tags = new DocletTag[0];
+    
+    private JavaClass parentClass;
     /**
      * Return list of modifiers as Strings.
      * (public, private, protected, final, abstract, static)
@@ -212,7 +214,16 @@
     }
     
     public JavaSource getSource() { 
-        return parent.getParentSource(); 
+        return parentClass.getParentSource(); 
     }
 
+    public void setParentClass( JavaClass parentClass )
+    {
+        this.parentClass = parentClass;
+    }
+    
+    public JavaClass getParentClass()
+    {
+        return parentClass;
+    }
 }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -36,7 +36,11 @@
     private Type superClass;
     private Type[] implementz = new Type[0];
     private JavaClassContext context;
+    
+    //sourceless class can use this property
 	private JavaPackage javaPackage;
+	
+	private JavaSource source;
 
     public JavaClass() {
     }
@@ -182,7 +186,7 @@
     }
 
     public void addMethod(JavaMethod meth) {
-        meth.setParent(this);
+        meth.setParentClass( this );
         methods.add(meth);
         methodsArray = null;
     }
@@ -197,23 +201,41 @@
     }
 
     public void addField(JavaField javaField) {
-        javaField.setParent(this);
+        javaField.setParentClass( this );
         fields.add(javaField);
         fieldsArray = null;
     }
     
+    /**
+     * Only used when constructing the model by hand / without source 
+     * 
+     * @param javaPackage
+     */
     public void setJavaPackage(JavaPackage javaPackage) {
     	this.javaPackage = javaPackage;
     }
 
+    public void setSource( JavaSource source )
+    {
+        this.source = source;
+    }
+    
     public JavaSource getParentSource() {
-        JavaClassParent parent = getParent();
-        return ((parent == null) ? null : parent.getParentSource());
+        return (getParentClass() != null ? getParentClass().getParentSource() : source);
     }
 
     public JavaPackage getPackage() {
-        return (getParentSource() != null ? getParentSource().getPackage() : javaPackage);
+        return getParentSource() != null ? getParentSource().getPackage() : javaPackage;
     }
+    
+    public JavaClassParent getParent()
+    {
+        JavaClassParent result = getParentClass();
+        if (result == null) {
+            result = getParentSource();
+        }
+        return result;
+    }
 
     /**
      * If this class has a package, the packagename will be returned.
@@ -227,14 +249,14 @@
     }
 
     public String getFullyQualifiedName() {
-        return (getParent() != null ? (getParent().getClassNamePrefix()) : javaPackage != null ? (javaPackage.getName()+".") : "") + getName();
+        return (getParentClass() != null ? (getParentClass().getClassNamePrefix()) : getPackage() != null ? (getPackage().getName()+".") : "") + getName();
     }
 
     /**
      * @since 1.3
      */
     public boolean isInner() {
-        return getParent() instanceof JavaClass;
+        return getParentClass() != null;
     }
 
     public String resolveType(String typeName) {
@@ -415,7 +437,7 @@
     }
 
     public void addClass(JavaClass cls) {
-        cls.setParent(this);
+        cls.setParentClass( this );
         classes.add(cls);
         classesArray = null;
     }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaField.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaField.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaField.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -1,7 +1,5 @@
 package com.thoughtworks.qdox.model;
 
-import java.io.ObjectInputStream.GetField;
-
 public class JavaField extends AbstractJavaEntity implements Member {
 
     private Type type;
@@ -99,7 +97,7 @@
     		result.append("volatile ");
     	}
     	result.append(getType().getValue() + " ");
-    	result.append(((JavaClass)getParent()).getFullyQualifiedName() + "." +getName());
+    	result.append(getParentClass().getFullyQualifiedName() + "." +getName());
     	return result.toString();
     }
 }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaMethod.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -202,14 +202,6 @@
         return hashCode;
     }
 
-    public JavaClass getParentClass() {
-        return (JavaClass) getParent();
-    }
-
-    public void setParentClass(JavaClass parentClass) {
-        setParent(parentClass);
-    }
-
     public boolean isPublic() {
         return super.isPublic() || (getParentClass() != null ? getParentClass().isInterface() : false);
     }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaParameter.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -47,6 +47,11 @@
     public void setParentMethod(JavaMethod parentMethod) {
         this.parentMethod = parentMethod;
     }
+    
+    public JavaClass getParentClass()
+    {
+        return getParentMethod().getParentClass();
+    }
 
     /**
      * Is this a Java 5 var args type specified using three dots. e.g. void doStuff(Object... thing)

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaSource.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaSource.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaSource.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -102,7 +102,7 @@
     }
 
     public void addClass(JavaClass cls) {
-        cls.setParent(this);
+        cls.setSource( this );
         classes.add(cls);
         classesArray = null;
     }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java (679 => 680)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java	2009-11-15 13:48:43 UTC (rev 679)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilder.java	2009-11-25 22:55:51 UTC (rev 680)
@@ -78,7 +78,6 @@
 
     public void beginClass(ClassDef def) {
         currentClass = new JavaClass();
-        currentClass.setParent(currentParent);
         currentClass.setLineNumber(def.lineNumber);
 
         // basic details
@@ -87,7 +86,6 @@
         currentClass.setEnum(ClassDef.ENUM.equals(def.type));
         currentClass.setAnnotation(ClassDef.ANNOTATION_TYPE.equals(def.type));
 
-
         // superclass
         if (currentClass.isInterface()) {
             currentClass.setSuperClass(null);
@@ -259,7 +257,7 @@
 
 	public void addField(FieldDef def) {
         JavaField currentField = new JavaField();
-        currentField.setParent(currentClass);
+        currentField.setParentClass(currentClass);
         currentField.setLineNumber(def.lineNumber);
 
         currentField.setName(def.name);


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to