Title: [575] trunk/qdox/src/site/content: toString() impl's for JavaPackage, JavaClass, JavaField + tests

Diff

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java	2009-03-02 22:55:10 UTC (rev 574)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java	2009-03-05 21:29:07 UTC (rev 575)
@@ -35,6 +35,7 @@
     private Type superClass;
     private Type[] implementz = new Type[0];
     private JavaClassCache javaClassCache;
+	private JavaPackage javaPackage;
 
     public JavaClass() {
     }
@@ -199,6 +200,10 @@
         fields.add(javaField);
         fieldsArray = null;
     }
+    
+    public void setJavaPackage(JavaPackage javaPackage) {
+    	this.javaPackage = javaPackage;
+    }
 
     public JavaSource getParentSource() {
         JavaClassParent parent = getParent();
@@ -206,11 +211,11 @@
     }
 
     public JavaPackage getPackage() {
-        return getParentSource().getPackage();
+        return (getParentSource() != null ? getParentSource().getPackage() : javaPackage);
     }
 
     public String getFullyQualifiedName() {
-        return getParent().getClassNamePrefix() + getName();
+        return (getParent() != null ? (getParent().getClassNamePrefix()) : javaPackage != null ? (javaPackage.getName()+".") : "") + getName();
     }
 
     /**
@@ -612,4 +617,20 @@
         return getFullyQualifiedName().compareTo(((JavaClass) o).getFullyQualifiedName());
     }
 
+    /**
+     * @see http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#toString()
+     */
+    public String toString() {
+    	StringBuffer sb = new StringBuffer();
+    	if(asType().isPrimitive() || (Type.VOID.equals(asType()))) {
+    		sb.append(asType().getValue());
+    	}
+    	else {
+        	sb.append(isInterface() ? "interface" : "class");
+        	sb.append(" ");
+        	sb.append(getFullyQualifiedName());
+    	}
+    	return sb.toString();
+    }
+
 }

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaField.java	2009-03-02 22:55:10 UTC (rev 574)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaField.java	2009-03-05 21:29:07 UTC (rev 575)
@@ -1,5 +1,7 @@
 package com.thoughtworks.qdox.model;
 
+import java.io.ObjectInputStream.GetField;
+
 public class JavaField extends AbstractJavaEntity implements Member {
 
     private Type type;
@@ -70,4 +72,34 @@
     	this.initializationExpression = initializationExpression;
     }
 
+    /**
+     * @see http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Field.html#toString()
+     */
+    public String toString() {
+    	StringBuffer result = new StringBuffer();
+    	if(isPrivate()) {
+    		result.append("private ");
+    	}
+    	else if(isProtected()) {
+    		result.append("protected ");
+    	}
+    	else if(isPublic()) {
+    		result.append("public ");
+    	}
+    	if(isStatic()) {
+    		result.append("static ");
+    	}
+    	if(isFinal()) {
+    		result.append("final ");
+    	}
+    	if(isTransient()) {
+    		result.append("transient ");
+    	}
+    	if(isVolatile()) {
+    		result.append("volatile ");
+    	}
+    	result.append(getType().getValue() + " ");
+    	result.append(((JavaClass)getParent()).getFullyQualifiedName() + "." +getName());
+    	return result.toString();
+    }
 }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java (574 => 575)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java	2009-03-02 22:55:10 UTC (rev 574)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java	2009-03-05 21:29:07 UTC (rev 575)
@@ -21,6 +21,10 @@
     public JavaPackage() {
 	}
 
+    public JavaPackage(String name) {
+    	this(name, null);
+	}
+    
 	public JavaPackage(String name, Map allPackages) {
 		this.name= name;
         this.allPackages = allPackages;
@@ -51,6 +55,7 @@
 	}
 
 	public void addClass(JavaClass clazz) {
+		clazz.setJavaPackage(this);
 		classes.add(clazz);
 	}
 
@@ -95,4 +100,11 @@
     public int hashCode() {
         return name.hashCode();
     }
+    
+    /**
+     * @see http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html#toString()
+     */
+    public String toString() {
+    	return "package " + name;
+    }
 }

Modified: trunk/qdox/src/site/content/upgrade.html (574 => 575)

--- trunk/qdox/src/site/content/upgrade.html	2009-03-02 22:55:10 UTC (rev 574)
+++ trunk/qdox/src/site/content/upgrade.html	2009-03-05 21:29:07 UTC (rev 575)
@@ -10,7 +10,12 @@
       </p>
       <h2>Things that might break your code</h2>
         <p> The toString()-method in most of the JavaObjects under com.thoughtworks.qdox.models used to return the corresponding codeblock.
-        This method has been renamed to getCodeBlock(). The toString() will follow the Java API Specs as described for each equivalent object under the java.lang.reflect-package. 
+        This method has been renamed to getCodeBlock(). The toString() will follow the Java API Specs as described for each equivalent object under the java.lang-package.
+        Some methods require extra attention, because there's not an exact match. Watch out for differences between Type and JavaClass.
+        <table>
+          <tr><th>Java API</th><th>QDOX</th></tr>
+          <tr><td>((java.lang.Method) aMethod).getReturnsType().toString()</td><td>((com.thoughtworks.qdox.model.JavaMethod) aMethod).getReturns().toString()</td>
+        </table> 
         </p>
            
 	<h2>Upgrading to 1.9 or above</h2>

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java (574 => 575)

--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java	2009-03-02 22:55:10 UTC (rev 574)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java	2009-03-05 21:29:07 UTC (rev 575)
@@ -494,7 +494,74 @@
         assertEquals(getFooMethod, fooProp.getAccessor());
         assertEquals(setFooMethod, fooProp.getMutator());
     }
+    
+    public void testToStringClass() {
+    	cls.setName("com.MyClass");
+    	assertEquals("class com.MyClass", cls.toString());
+    }
+    
+    public void testToStringInterface() {
+    	cls.setName("com.MyClass");
+    	cls.setInterface(true);
+    	assertEquals("interface com.MyClass", cls.toString());
+    }
+    
+    public void testToStringVoid() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(Type.VOID, "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("void", javaMethod.getReturns().toString());
+    }
 
+    public void testToStringBoolean() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("boolean"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("boolean", javaMethod.getReturns().toString());
+    }
+    
+    public void testToStringInt() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("int"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("int", javaMethod.getReturns().toString());
+    }
+
+    public void testToStringLong() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("long"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("long", javaMethod.getReturns().toString());
+    }
+
+    public void testToStringFloat() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("float"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("float", javaMethod.getReturns().toString());
+    }
+
+    public void testToStringDouble() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("double"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("double", javaMethod.getReturns().toString());
+    }
+    
+    public void testToStringChar() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("char"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("char", javaMethod.getReturns().toString());
+    }
+
+    public void testToStringByte() {
+    	cls.setName("com.MyClass");
+    	cls.addMethod(new JavaMethod(new Type("byte"), "doSomething"));
+    	JavaMethod javaMethod = cls.getMethods()[0];
+    	assertEquals("byte", javaMethod.getReturns().toString());
+    }
+
     /**
      * @codehaus.jira QDOX-59
      */

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaFieldTest.java (574 => 575)

--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaFieldTest.java	2009-03-02 22:55:10 UTC (rev 574)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaFieldTest.java	2009-03-05 21:29:07 UTC (rev 575)
@@ -84,4 +84,22 @@
         fld.setModifiers(new String[]{"public", "final"});
         assertEquals("int count", fld.getDeclarationSignature(false));
     }
+    
+    public void testToStringThreadMIN_PRIORITY() throws Exception {
+    	JavaClass cls = new JavaClass("java.lang.Thread");
+    	JavaField fld = new JavaField(new Type("int"), "MIN_PRIORITY");
+    	fld.setModifiers(new String[] {"final", "static", "public"});
+    	cls.addField(fld);
+    	assertEquals("public static final int java.lang.Thread.MIN_PRIORITY", fld.toString());
+    }
+    
+    public void testToStringFieldDescriptorFd() throws Exception {
+    	JavaPackage pckg =  new JavaPackage("java.io");
+    	JavaClass cls = new JavaClass("FileDescriptor");
+    	pckg.addClass(cls);
+    	JavaField fld =  new JavaField(new Type("int"), "fd");
+    	fld.setModifiers(new String[]{"private"});
+    	cls.addField(fld);
+    	assertEquals("private int java.io.FileDescriptor.fd", fld.toString());
+    }
 }

Added: trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaPackageTest.java (0 => 575)

--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaPackageTest.java	                        (rev 0)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaPackageTest.java	2009-03-05 21:29:07 UTC (rev 575)
@@ -0,0 +1,11 @@
+package com.thoughtworks.qdox.model;
+
+import junit.framework.TestCase;
+
+public class JavaPackageTest extends TestCase {
+
+	public void testToStringJavaLang() throws Exception {
+		JavaPackage pckg = new JavaPackage("java.lang");
+		assertEquals("package java.lang", pckg.toString());
+	}
+}


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to