- Revision
- 604
- Author
- rfscholte
- Date
- 2009-06-04 13:31:15 -0500 (Thu, 04 Jun 2009)
Log Message
fix for QDOX-166: Type.getValue versus Type.getFullyQualifiedName()
Modified Paths
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:
