Squash Parameterized types in javadoc references 09/85009/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 9 Oct 2019 05:50:42 +0000 (07:50 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 9 Oct 2019 05:51:41 +0000 (07:51 +0200)
When we are making a reference to a method, any arguments that
are parameterized (such as Class<?>) need to be squashed to their
raw type (such as Class).

JIRA: MDSAL-483
Change-Id: I0d8b596e17ec594a67fdde6f5fc17219aac99a3d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ClassTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java
binding/mdsal-binding-test-model/src/main/yang/opendaylight-mdsal483.yang [new file with mode: 0644]

index 5831fb7dd8f254d6f43318ab8faf0f431ffde09f..632932286e113b99ab4236a3bc5d92649340ab85 100644 (file)
@@ -306,7 +306,7 @@ class BuilderTemplate extends AbstractBuilderTemplate {
              *
              * @param value field value in legacy type
              * @return this builder
-             * @deprecated Use {#link «setterName»(«field.returnType.importedName»)} instead.
+             * @deprecated Use {#link «setterName»(«field.returnType.importedJavadocName»)} instead.
              */
             @Deprecated(forRemoval = true)
             public «type.getName» «setterName»(final «uintType.importedName» value) {
index 6b8dc16b3f2b79294d7dcd017c7a0042d6fc5c8e..9e90ec9f19a59012ece684fc00bdb2b70502637a 100644 (file)
@@ -279,7 +279,7 @@ class ClassTemplate extends BaseTemplate {
              «FOR prop : allProperties»
              * @param «prop.fieldName» «prop.name»«IF prop.isUintType» in legacy Java type«ENDIF»
              «ENDFOR»
-             * @deprecated Use {#link «type.name»(«FOR prop : allProperties SEPARATOR ", "»«prop.returnType.importedName»«ENDFOR»)} instead.
+             * @deprecated Use {#link «type.name»(«FOR prop : allProperties SEPARATOR ", "»«prop.returnType.importedJavadocName»«ENDFOR»)} instead.
              */
             @Deprecated(forRemoval = true)
             public «type.getName»(«FOR prop : allProperties SEPARATOR ", "»«prop.legacyType.importedName» «prop.fieldName»«ENDFOR») {
index 7db1bc4e801a75f9c92245a891f8fd75906b0f82..3ea2b1f9d33bd87ec5d8fdb460efb69ce8945131 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
+import org.opendaylight.mdsal.binding.model.api.ParameterizedType;
 import org.opendaylight.mdsal.binding.model.api.Restrictions;
 import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.mdsal.binding.model.util.Types;
@@ -67,6 +68,10 @@ class JavaFileTemplate {
                 .collect(Collectors.joining());
     }
 
+    final String importedJavadocName(final Type intype) {
+        return importedName(intype instanceof ParameterizedType ? ((ParameterizedType) intype).getRawType() : intype);
+    }
+
     final String importedName(final Type intype, final String... annotations) {
         return javaType.getReferenceString(intype, annotations);
     }
diff --git a/binding/mdsal-binding-test-model/src/main/yang/opendaylight-mdsal483.yang b/binding/mdsal-binding-test-model/src/main/yang/opendaylight-mdsal483.yang
new file mode 100644 (file)
index 0000000..e45211c
--- /dev/null
@@ -0,0 +1,21 @@
+module opendaylight-mdsal483 {
+    namespace "urn:test:opendaylight-mdsal483";
+    prefix base;
+
+    identity foo;
+
+    list bar {
+        key "one two";
+
+        leaf one {
+            type uint64;
+        }
+
+        leaf two {
+            type identityref {
+                base foo;
+            }
+        }
+    }
+}
+