Sprinkle @NonNull annotations 33/105333/2
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 8 Apr 2023 20:14:38 +0000 (22:14 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 8 Apr 2023 20:17:32 +0000 (22:17 +0200)
Contexts should always be non-null, improve a few places where we do not
make that explicit.

Change-Id: Ia11fb8e13f98c3e4c15bf0597b2191cb8553eac2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementDefinitionContext.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java

index ef7c5422878485416b03b404c5fb1ffc0cf9906c..930c92edfc1724f7c8f064591a056f20b766f22b 100644 (file)
@@ -29,7 +29,6 @@ import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.SortedMap;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
@@ -97,11 +96,11 @@ final class BuildGlobalContext extends AbstractNamespaceStorage implements Globa
         return supports.get(phase);
     }
 
-    void addSource(final @NonNull StatementStreamSource source) {
+    void addSource(final StatementStreamSource source) {
         sources.add(new SourceSpecificContext(this, source));
     }
 
-    void addLibSource(final @NonNull StatementStreamSource libSource) {
+    void addLibSource(final StatementStreamSource libSource) {
         checkState(currentPhase == ModelProcessingPhase.INIT,
                 "Add library source is allowed in ModelProcessingPhase.INIT only");
         libSources.add(new SourceSpecificContext(this, libSource));
index b87e59d5fac57592cd0b5400ef7c6e87ad4ae428..527b86c09a146218cb310ca829a20c0143147b4e 100644 (file)
@@ -342,7 +342,7 @@ abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E extends
 
     // Split out to keep generics working without a warning
     private static <X, Y extends DeclaredStatement<X>, Z extends EffectiveStatement<X, Y>> void finishDeclaration(
-            final UndeclaredStmtCtx<X, Y, Z> substatement) {
+            final @NonNull UndeclaredStmtCtx<X, Y, Z> substatement) {
         substatement.definition().onDeclarationFinished(substatement, ModelProcessingPhase.FULL_DECLARATION);
     }
 
@@ -445,7 +445,7 @@ abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E extends
      * @return Stream of supported effective statements.
      */
     // FIXME: this method is currently a misnomer, but unifying with streamDeclared() would make this accurate again
-    abstract Stream<? extends @NonNull ReactorStmtCtx<?, ?, ?>> streamEffective();
+    abstract @NonNull Stream<? extends @NonNull ReactorStmtCtx<?, ?, ?>> streamEffective();
 
     @Override
     final boolean doTryToCompletePhase(final byte targetOrder) {
index fc77ce9e619952a7f878dc79bdb593f2be53c598..485bca43da9bc55c11c4fb2aa5903e379b124b1a 100644 (file)
@@ -37,18 +37,18 @@ final class StatementDefinitionContext<A, D extends DeclaredStatement<A>, E exte
 
     StatementDefinitionContext(final StatementSupport<A, D, E> support) {
         this.support = requireNonNull(support);
-        this.argumentSpecificSubDefinitions = support.hasArgumentSpecificSupports() ? new HashMap<>() : null;
+        argumentSpecificSubDefinitions = support.hasArgumentSpecificSupports() ? new HashMap<>() : null;
     }
 
     @NonNull StatementFactory<A, D, E> getFactory() {
         return support;
     }
 
-    A parseArgumentValue(final StmtContext<A, D, E> context, final String value) {
+    A parseArgumentValue(final @NonNull StmtContext<A, D, E> context, final String value) {
         return support.parseArgumentValue(context, value);
     }
 
-    A adaptArgumentValue(final StmtContext<A, D, E> context, final QNameModule targetModule) {
+    A adaptArgumentValue(final @NonNull StmtContext<A, D, E> context, final QNameModule targetModule) {
         return support.adaptArgumentValue(context, targetModule);
     }
 
@@ -62,11 +62,11 @@ final class StatementDefinitionContext<A, D extends DeclaredStatement<A>, E exte
                 ? implicit.getImplicitParentFor(parent, stmtDef) : Optional.empty();
     }
 
-    void onStatementAdded(final Mutable<A, D, E> stmt) {
+    void onStatementAdded(final @NonNull Mutable<A, D, E> stmt) {
         support.onStatementAdded(stmt);
     }
 
-    void onDeclarationFinished(final Mutable<A, D, E> statement, final ModelProcessingPhase phase) {
+    void onDeclarationFinished(final @NonNull Mutable<A, D, E> statement, final ModelProcessingPhase phase) {
         switch (phase) {
             case SOURCE_PRE_LINKAGE:
                 support.onPreLinkageDeclared(statement);
index 6a4a4f2e3bdd1697847b6f7f54979fef7c714419..0d70b124d5d5f86f691ad73b5cf6049d38b4cfb0 100644 (file)
@@ -210,7 +210,6 @@ public abstract class StatementSupport<A, D extends DeclaredStatement<A>, E exte
     private final @NonNull StatementDefinition publicDefinition;
     private final @NonNull CopyPolicy copyPolicy;
 
-    @Beta
     protected StatementSupport(final StatementSupport<A, D, E> delegate) {
         checkArgument(delegate != this);
         publicDefinition = delegate.publicDefinition;
@@ -218,7 +217,6 @@ public abstract class StatementSupport<A, D extends DeclaredStatement<A>, E exte
         copyPolicy = delegate.copyPolicy;
     }
 
-    @Beta
     protected StatementSupport(final StatementDefinition publicDefinition, final StatementPolicy<A, D> policy) {
         this.publicDefinition = requireNonNull(publicDefinition);
         this.policy = requireNonNull(policy);
@@ -301,7 +299,7 @@ public abstract class StatementSupport<A, D extends DeclaredStatement<A>, E exte
      * @return Parsed value
      * @throws SourceException when an inconsistency is detected.
      */
-    public abstract A parseArgumentValue(StmtContext<?, ?, ?> ctx, String value);
+    public abstract A parseArgumentValue(@NonNull StmtContext<?, ?, ?> ctx, String value);
 
     /**
      * Adapts the argument value to match a new module. Default implementation returns original value stored in context,
@@ -367,7 +365,7 @@ public abstract class StatementSupport<A, D extends DeclaredStatement<A>, E exte
      * @param stmt Context of added statement. Argument and statement parent is accessible.
      * @throws SourceException when an inconsistency is detected.
      */
-    public void onStatementDefinitionDeclared(final Mutable<A, D, E> stmt) {
+    public void onStatementDefinitionDeclared(final @NonNull Mutable<A, D, E> stmt) {
         // NOOP for most implementations
     }
 
@@ -382,7 +380,7 @@ public abstract class StatementSupport<A, D extends DeclaredStatement<A>, E exte
      * @param stmt Context of added statement. Argument and statement parent is accessible.
      * @throws SourceException when an inconsistency is detected.
      */
-    public void onFullDefinitionDeclared(final Mutable<A, D, E> stmt) {
+    public void onFullDefinitionDeclared(final @NonNull Mutable<A, D, E> stmt) {
         final SubstatementValidator validator = substatementValidator();
         if (validator != null) {
             validator.validate(stmt);
index 73c48cf47fb771ddb13c0ae5903bcddd43e7e741..21d19c37b605905168a5455e1175fef56e11b854 100644 (file)
@@ -479,12 +479,12 @@ public final class StmtContextUtils {
      * @throws NullPointerException if any of the arguments are null
      * @throws SourceException if the string is not a valid YANG identifier
      */
-    public static @NonNull QName parseIdentifier(final StmtContext<?, ?, ?> ctx, final String str) {
+    public static @NonNull QName parseIdentifier(final @NonNull StmtContext<?, ?, ?> ctx, final String str) {
         SourceException.throwIf(str.isEmpty(), ctx, "Identifier may not be an empty string");
         return internedQName(ctx, str);
     }
 
-    public static @NonNull QName parseNodeIdentifier(final StmtContext<?, ?, ?> ctx, final String prefix,
+    public static @NonNull QName parseNodeIdentifier(final @NonNull StmtContext<?, ?, ?> ctx, final String prefix,
             final String localName) {
         return internedQName(ctx,
             InferenceException.throwIfNull(getModuleQNameByPrefix(ctx, prefix), ctx,
@@ -501,7 +501,7 @@ public final class StmtContextUtils {
      * @throws NullPointerException if any of the arguments are null
      * @throws SourceException if the string is not a valid YANG node identifier
      */
-    public static @NonNull QName parseNodeIdentifier(final StmtContext<?, ?, ?> ctx, final String str) {
+    public static @NonNull QName parseNodeIdentifier(final @NonNull StmtContext<?, ?, ?> ctx, final String str) {
         SourceException.throwIf(str.isEmpty(), ctx, "Node identifier may not be an empty string");
 
         final int colon = str.indexOf(':');
@@ -517,11 +517,11 @@ public final class StmtContextUtils {
         return parseNodeIdentifier(ctx, prefix, localName);
     }
 
-    private static @NonNull QName internedQName(final StmtContext<?, ?, ?> ctx, final String localName) {
+    private static @NonNull QName internedQName(final @NonNull StmtContext<?, ?, ?> ctx, final String localName) {
         return internedQName(ctx, getModuleQName(ctx), localName);
     }
 
-    private static @NonNull QName internedQName(final CommonStmtCtx ctx, final QNameModule module,
+    private static @NonNull QName internedQName(final @NonNull CommonStmtCtx ctx, final QNameModule module,
             final String localName) {
         final QName template;
         try {