Generate javadoc for unions 68/101868/3
authorSamuel Schneider <samuel.schneider@pantheon.tech>
Mon, 25 Jul 2022 13:12:49 +0000 (15:12 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 29 Jul 2022 21:52:15 +0000 (23:52 +0200)
Fix warnings about missing javadoc in union classes.

Add setting of YangSourceDefinition when building GeneratedType
corresponding to union so JavaFileTemplate.appendSnippet()
generate javadoc for this class.

JIRA: MDSAL-760
Change-Id: I42ac82ab099785b1318a5e3615e37ebeee653b02
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/AbstractTypeObjectGenerator.java
binding/mdsal-binding-model-api/src/main/java/org/opendaylight/mdsal/binding/model/api/YangSourceDefinition.java

index 2ba6783367bb5c05f00bf19aeaaf4dc827558169..45e7f80b5bb62535959e1259ffbc0b22d65d759f 100644 (file)
@@ -32,6 +32,7 @@ import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.Restrictions;
 import org.opendaylight.mdsal.binding.model.api.Type;
+import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase;
@@ -683,6 +684,7 @@ abstract class AbstractTypeObjectGenerator<S extends EffectiveStatement<?, ?>, R
             final UnionDependencies dependencies, final JavaTypeName typeName, final ModuleGenerator module,
             final TypeEffectiveStatement<?> type, final boolean isTypedef, final TypeDefinition<?> typedef) {
         final GeneratedUnionBuilder builder = builderFactory.newGeneratedUnionBuilder(typeName);
+        YangSourceDefinition.of(module.statement(), definingStatement).ifPresent(builder::setYangSourceDefinition);
         builder.addImplementsType(BindingTypes.TYPE_OBJECT);
         builder.setIsUnion(true);
 
index 9f46d5af77bf905942abc243623739d6c5e862e1..6177860706783fcdfbee9a7e16dfa4fc253da8b5 100644 (file)
@@ -88,6 +88,12 @@ public abstract sealed class YangSourceDefinition {
         return hasDeclaredStatement(node) ? Optional.of(new Single(module, node)) : Optional.empty();
     }
 
+    public static Optional<YangSourceDefinition> of(final ModuleEffectiveStatement module,
+            final EffectiveStatement<?, ?> effective) {
+        return effective instanceof SchemaNode schema && effective.getDeclared() != null
+            ? Optional.of(new Single(module, schema)) : Optional.empty();
+    }
+
     public static Optional<YangSourceDefinition> of(final Module module, final Collection<? extends SchemaNode> nodes) {
         checkArgument(!nodes.isEmpty());