Document builder constructors 41/101041/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Apr 2022 14:49:58 +0000 (16:49 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 10 May 2022 08:05:57 +0000 (10:05 +0200)
Javadoc is not entirely happy with us not generating any documentation
for various Builder constructors. Fix this by adding some rudimentary
javadoc.

JIRA: MDSAL-755
Change-Id: Icaec59bb86d21f372e341ea93d9d89cbb2599951
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 11fa023df13dfc3b4cd368e71146319cc0368c82)

binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend

index 70f4563316541cb55d264e0b322b90900c5f6289..2a23fe1a90a776e0d971fc4137cfdac66c99b50d 100644 (file)
@@ -73,8 +73,21 @@ class BuilderTemplate extends AbstractBuilderTemplate {
                 «generateAugmentField()»
             «ENDIF»
 
+            /**
+             * Construct an empty builder.
+             */
+            public «type.name»() {
+                // No-op
+            }
+
             «generateConstructorsFromIfcs()»
 
+            «val targetTypeName = targetType.importedName»
+            /**
+             * Construct a builder initialized with state from specified {@link «targetTypeName»}.
+             *
+             * @param base «targetTypeName» from which the builder should be initialized
+             */
             public «generateCopyConstructor(targetType, type.enclosedTypes.get(0))»
 
             «generateMethodFieldsFrom()»
@@ -88,11 +101,11 @@ class BuilderTemplate extends AbstractBuilderTemplate {
             «generateSetters»
 
             /**
-             * A new {@link «targetType.name»} instance.
+             * A new {@link «targetTypeName»} instance.
              *
-             * @return A new {@link «targetType.name»} instance.
+             * @return A new {@link «targetTypeName»} instance.
              */
-            public «targetType.name» build() {
+            public «targetTypeName» build() {
                 return new «type.enclosedTypes.get(0).importedName»(this);
             }
 
@@ -112,9 +125,6 @@ class BuilderTemplate extends AbstractBuilderTemplate {
      * Generate default constructor and constructor for every implemented interface from uses statements.
      */
     def private generateConstructorsFromIfcs() '''
-        public «type.name»() {
-        }
-
         «IF (!(targetType instanceof GeneratedTransferObject))»
             «FOR impl : targetType.implements SEPARATOR "\n"»
                 «generateConstructorFromIfc(impl)»
@@ -128,9 +138,16 @@ class BuilderTemplate extends AbstractBuilderTemplate {
     def private Object generateConstructorFromIfc(Type impl) '''
         «IF (impl instanceof GeneratedType)»
             «IF impl.hasNonDefaultMethods»
-                public «type.name»(«impl.importedName» arg) {
+                «val typeName = impl.importedName»
+                /**
+                 * Construct a new builder initialized from specified {@link «typeName»}.
+                 *
+                 * @param arg «typeName» from which the builder should be initialized
+                 */
+                public «type.name»(«typeName» arg) {
                     «printConstructorPropertySetter(impl)»
                 }
+
             «ENDIF»
             «FOR implTypeImplement : impl.implements»
                 «generateConstructorFromIfc(implTypeImplement)»