Title: [604] trunk/qdox/src/site/content: fix for QDOX-166: Type.getValue versus Type.getFullyQualifiedName()

Diff

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/Type.java (603 => 604)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/Type.java	2009-05-23 11:40:36 UTC (rev 603)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/Type.java	2009-06-04 18:31:15 UTC (rev 604)
@@ -70,10 +70,14 @@
         return context;
     }
 
-    public String getValue() {
+    public String getFullQualifiedName() {
         return isResolved() ? fullName : name;
     }
     
+    public String getValue() {
+        return getFullQualifiedName().replaceAll( "\\$", "." );
+    }
+    
     /**
      * @since 1.8
      */
@@ -153,8 +157,8 @@
     }
 
     public String toString() {
-        if (dimensions == 0) return getValue();
-        StringBuffer buff = new StringBuffer(getValue());
+        if (dimensions == 0) return getFullQualifiedName();
+        StringBuffer buff = new StringBuffer(getFullQualifiedName());
         for (int i = 0; i < dimensions; i++) buff.append("[]");
         String result = buff.toString();
         return result;
@@ -183,11 +187,11 @@
     	
         JavaClassParent javaClassParent = getJavaClassParent();
         if (javaClassParent != null) {
-        	result = javaClassParent.getNestedClassByName(getValue());
+        	result = javaClassParent.getNestedClassByName(getFullQualifiedName());
 	        if(result == null) {
 	            JavaClassContext context = javaClassParent.getJavaClassContext();
 	            if (context.getClassLibrary() != null) {
-	            	result = context.getClassByName(getValue());
+	            	result = context.getClassByName(getFullQualifiedName());
 	            }
 	        }
         }

Modified: trunk/qdox/src/site/content/upgrade.html (603 => 604)

--- trunk/qdox/src/site/content/upgrade.html	2009-05-23 11:40:36 UTC (rev 603)
+++ trunk/qdox/src/site/content/upgrade.html	2009-06-04 18:31:15 UTC (rev 604)
@@ -6,7 +6,7 @@
   <h2>Upgrading to 1.10 or above</h2>
       <p>
         This section describes what needs to be done when upgrading to QDox
-        1.9.</a>.
+        1.10.</a>.
       </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.
@@ -17,6 +17,10 @@
           <tr><td>((java.lang.Method) aMethod).getReturnsType().toString()</td><td>((com.thoughtworks.qdox.model.JavaMethod) aMethod).getReturns().toString()</td>
         </table> 
         </p>
+        <p>com.thoughtworks.qdox.model.Type.getValue() will return the typeName for usage in the code. The new method com.thoughtworks.qdox.model.Type.getFullQualifiedName() will return the FQN as defined by the java specs. 
+        Normally they would return the same value, but pay attention when using inner classes.
+        </p>
+        
            
 	<h2>Upgrading to 1.9 or above</h2>
       <p>

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/ClassResolutionTest.java (603 => 604)

--- trunk/qdox/src/test/com/thoughtworks/qdox/ClassResolutionTest.java	2009-05-23 11:40:36 UTC (rev 603)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/ClassResolutionTest.java	2009-06-04 18:31:15 UTC (rev 604)
@@ -39,7 +39,7 @@
         Type type = parameter.getType();
 
         // verify
-        assertEquals("Should include fully qualified name", "package1.Class1$NestedClass", type.getValue());
+        assertEquals("Should include fully qualified name", "package1.Class1$NestedClass", type.getFullQualifiedName());
     }
 
     public void testSurvivesStaticImports() {

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java (603 => 604)

--- trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java	2009-05-23 11:40:36 UTC (rev 603)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java	2009-06-04 18:31:15 UTC (rev 604)
@@ -847,7 +847,7 @@
         JavaField innerField = 
             builder.getClassByName("p2.B").getFieldByName("innerField");
         assertEquals(innerClass.asType(), innerField.getType());
-        assertEquals("p1.A$Inner", innerField.getType().getValue());
+        assertEquals("p1.A$Inner", innerField.getType().getFullQualifiedName());
     }
 
     public void testJiraQdox71() {

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

--- trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java	2009-05-23 11:40:36 UTC (rev 603)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/model/JavaClassTest.java	2009-06-04 18:31:15 UTC (rev 604)
@@ -500,6 +500,34 @@
     	assertEquals("class com.MyClass", cls.toString());
     }
     
+    public void testInnerClassToString() throws Exception {
+    	JavaPackage jPackage = new JavaPackage("com.thoughtworks.qdox.model");
+    	JavaClass jOuterClass = new JavaClass("OuterClass");
+    	jPackage.addClass(jOuterClass);
+    	JavaClass jInnerClass = new JavaClass("InnerClass");
+    	jOuterClass.addClass(jInnerClass);
+    	assertEquals("class com.thoughtworks.qdox.model.OuterClass$InnerClass", jInnerClass.toString());
+    }
+    
+    public void testInnerClassType() {
+        JavaPackage jPackage = new JavaPackage("com.thoughtworks.qdox.model");
+        JavaClass jOuterClass = new JavaClass("OuterClass");
+        jPackage.addClass(jOuterClass);
+        JavaClass jInnerClass = new JavaClass("InnerClass");
+        jOuterClass.addClass(jInnerClass);
+        assertEquals("com.thoughtworks.qdox.model.OuterClass.InnerClass", jInnerClass.asType().getValue());
+    }
+    
+    public void testInnerInterfaceToString() {
+    	JavaPackage jPackage = new JavaPackage("com.thoughtworks.qdox.model");
+    	JavaClass jOuterClass = new JavaClass("OuterClass");
+    	jPackage.addClass(jOuterClass);
+    	JavaClass jInnerInterface = new JavaClass("InnerInterface");
+    	jInnerInterface.setInterface(true);
+    	jOuterClass.addClass(jInnerInterface);
+    	assertEquals("interface com.thoughtworks.qdox.model.OuterClass$InnerInterface", jInnerInterface.toString());
+    }
+    
     public void testToStringInterface() {
     	cls.setName("com.MyClass");
     	cls.setInterface(true);
@@ -584,4 +612,6 @@
         }
         return result;
     }
+    
+    
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to