Generate features with @NonNullByDefault 06/102206/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 22 Aug 2022 14:50:10 +0000 (16:50 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 22 Aug 2022 14:50:10 +0000 (16:50 +0200)
We get quite a few warnings around nulls, use @NonNullByDefault, as that
is what we need.

Change-Id: Ia6b7c572ece161cc4e9cac1e9530a91b621cd93e
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/FeatureTemplate.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java

index 6e07961c8f9fc7208540bb402166122ab3861406..3ed8be3bb5f3f755d47c167f48a7e4077438fbdb 100644 (file)
@@ -33,7 +33,8 @@ final class FeatureTemplate extends ClassTemplate {
     protected String generateClassDeclaration(final boolean isInnerClass) {
         final var typeName = type().getName();
 
-        return "public final class " + typeName + " extends " + importedName(YANG_FEATURE) + '<' + typeName + ", "
+        return "@" + importedName(NONNULL_BY_DEFAULT) + '\n'
+            + "public final class " + typeName + " extends " + importedName(YANG_FEATURE) + '<' + typeName + ", "
             + importedName(dataRoot) + '>';
     }
 
@@ -58,7 +59,7 @@ final class FeatureTemplate extends ClassTemplate {
         return "/**\n"
             + " * {@link " + typeName + "} singleton instance.\n"
             + " */\n"
-            + "public static final " + importedNonNull(type) + ' ' + BindingMapping.VALUE_STATIC_FIELD_NAME + " = new "
+            + "public static final " + importedName(type) + ' ' + BindingMapping.VALUE_STATIC_FIELD_NAME + " = new "
             + type.getName() + "();";
     }
 
index 08dbd8b35955cb3b0d2c907e1fd1157014b795bd..1aa3d126cf8fd0e7ef0b5f3a43b432fa71ae8820 100644 (file)
@@ -137,6 +137,13 @@ class JavaFileTemplate {
      * {@code org.eclipse.jdt.annotation.NonNull} as a JavaTypeName.
      */
     static final @NonNull JavaTypeName NONNULL = JavaTypeName.create("org.eclipse.jdt.annotation", "NonNull");
+
+    /**
+     * {@code org.eclipse.jdt.annotation.NonNullByDefault} as a JavaTypeName.
+     */
+    static final @NonNull JavaTypeName NONNULL_BY_DEFAULT =
+        JavaTypeName.create("org.eclipse.jdt.annotation", "NonNullByDefault");
+
     /**
      * {@code org.eclipse.jdt.annotation.Nullable} as a JavaTypeName.
      */