- Revision
- 575
- Author
- rfscholte
- Date
- 2009-03-05 15:29:07 -0600 (Thu, 05 Mar 2009)
Log Message
toString() impl's for JavaPackage, JavaClass, JavaField + tests
Modified Paths
- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaClass.java
- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaField.java
- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java
- trunk/qdox/src/site/content/upgrade.html
- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java
- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaFieldTest.java
Added Paths
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:
