Convert parser-{reactor,spi} classes to JDT annotations 38/77238/18
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 24 Oct 2018 00:28:11 +0000 (02:28 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 24 Oct 2018 12:13:39 +0000 (14:13 +0200)
Migrate away from JSR-305 annotations to JDT annotations.

Change-Id: I268808a6da501eedce9bc34df0d9c5f70b145230
JIRA: YANGTOOLS-907
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/CrossSourceStatementReactor.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java
yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextWriter.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelProcessingPhase.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/StatementWriter.java

index 0bd6efdb76d4ad71a8293578dfe80324c4af48e3..66d31f98fd990d37de216c80e9f8ab2ace6ec3a2 100644 (file)
@@ -30,7 +30,7 @@ import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.SortedMap;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.RecursiveObjectLeaker;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
@@ -118,11 +118,11 @@ class BuildGlobalContext extends NamespaceStorageSupport implements Registry {
         return supports.get(phase);
     }
 
-    void addSource(@Nonnull final StatementStreamSource source) {
+    void addSource(final @NonNull StatementStreamSource source) {
         sources.add(new SourceSpecificContext(this, source));
     }
 
-    void addLibSource(@Nonnull final StatementStreamSource libSource) {
+    void addLibSource(final @NonNull StatementStreamSource libSource) {
         checkState(!isEnabledSemanticVersioning(),
             "Library sources are not supported in semantic version mode currently.");
         checkState(currentPhase == ModelProcessingPhase.INIT,
index 2adb14f665fdb7203b97c458728bccf2542bb722..cc2d8bbb5aaf73403990e53b86860d8c5e48c6b8 100644 (file)
@@ -17,7 +17,7 @@ import java.util.Collection;
 import java.util.EnumMap;
 import java.util.Map;
 import java.util.Set;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
@@ -42,7 +42,7 @@ public final class CrossSourceStatementReactor {
      *
      * @return A new builder.
      */
-    public static Builder builder() {
+    public static @NonNull Builder builder() {
         return new Builder();
     }
 
@@ -51,7 +51,7 @@ public final class CrossSourceStatementReactor {
      *
      * @return A new {@link BuildAction}.
      */
-    public BuildAction newBuild() {
+    public @NonNull BuildAction newBuild() {
         return newBuild(StatementParserMode.DEFAULT_MODE);
     }
 
@@ -62,7 +62,7 @@ public final class CrossSourceStatementReactor {
      * @return A new {@link BuildAction}.
      * @throws NullPointerException if statementParserMode is null
      */
-    public BuildAction newBuild(final StatementParserMode statementParserMode) {
+    public @NonNull BuildAction newBuild(final StatementParserMode statementParserMode) {
         return new BuildAction(statementParserMode);
     }
 
@@ -72,12 +72,13 @@ public final class CrossSourceStatementReactor {
         private final Map<ModelProcessingPhase, StatementSupportBundle> bundles =
                 new EnumMap<>(ModelProcessingPhase.class);
 
-        public Builder setBundle(final ModelProcessingPhase phase, final StatementSupportBundle bundle) {
+        public @NonNull Builder setBundle(final ModelProcessingPhase phase, final StatementSupportBundle bundle) {
             bundles.put(phase, bundle);
             return this;
         }
 
-        public Builder setValidationBundle(final ValidationBundleType type, final Collection<?> validationBundle) {
+        public @NonNull Builder setValidationBundle(final ValidationBundleType type,
+                final Collection<?> validationBundle) {
             validationBundles.put(type, validationBundle);
             return this;
         }
@@ -93,7 +94,7 @@ public final class CrossSourceStatementReactor {
         private boolean supportedFeaturesSet = false;
         private boolean modulesDeviatedByModulesSet = false;
 
-        BuildAction(@Nonnull final StatementParserMode statementParserMode) {
+        BuildAction(final @NonNull StatementParserMode statementParserMode) {
             this.context = new BuildGlobalContext(supportedTerminology, supportedValidation,
                 requireNonNull(statementParserMode));
         }
@@ -105,7 +106,7 @@ public final class CrossSourceStatementReactor {
          *            which should be added into main sources
          * @return This build action, for fluent use.
          */
-        public BuildAction addSource(final StatementStreamSource source) {
+        public @NonNull BuildAction addSource(final StatementStreamSource source) {
             context.addSource(source);
             return this;
         }
@@ -117,14 +118,14 @@ public final class CrossSourceStatementReactor {
          *            which should be added into main sources
          * @return This build action, for fluent use.
          */
-        public BuildAction addSources(final StatementStreamSource... sources) {
+        public @NonNull BuildAction addSources(final StatementStreamSource... sources) {
             addSources(Arrays.asList(sources));
             return this;
         }
 
-        public BuildAction addSources(final Collection<? extends StatementStreamSource> sources) {
+        public @NonNull BuildAction addSources(final @NonNull Collection<? extends StatementStreamSource> sources) {
             for (final StatementStreamSource source : sources) {
-                context.addSource(source);
+                context.addSource(requireNonNull(source));
             }
             return this;
         }
@@ -136,16 +137,15 @@ public final class CrossSourceStatementReactor {
          * <p>
          * Library sources are not supported in semantic version mode currently.
          *
-         * @param libSources
-         *            yang sources which should be added into library sources
+         * @param libSources yang sources which should be added into library sources
          * @return This build action, for fluent use.
          */
-        public BuildAction addLibSources(final StatementStreamSource... libSources) {
+        public @NonNull BuildAction addLibSources(final StatementStreamSource... libSources) {
             addLibSources(Arrays.asList(libSources));
             return this;
         }
 
-        public BuildAction addLibSources(final Collection<StatementStreamSource> libSources) {
+        public @NonNull BuildAction addLibSources(final Collection<StatementStreamSource> libSources) {
             for (final StatementStreamSource libSource : libSources) {
                 context.addLibSource(libSource);
             }
@@ -161,7 +161,7 @@ public final class CrossSourceStatementReactor {
          *            If the set is empty, no features encountered will be supported.
          * @return This build action, for fluent use.
          */
-        public BuildAction setSupportedFeatures(@Nonnull final Set<QName> supportedFeatures) {
+        public @NonNull BuildAction setSupportedFeatures(final @NonNull Set<QName> supportedFeatures) {
             checkState(!supportedFeaturesSet, "Supported features should be set only once.");
             context.setSupportedFeatures(requireNonNull(supportedFeatures));
             supportedFeaturesSet = true;
@@ -177,8 +177,8 @@ public final class CrossSourceStatementReactor {
          *            SchemaContext. If the map is empty, no deviations encountered will be supported.
          * @return This build action, for fluent use.
          */
-        public BuildAction setModulesWithSupportedDeviations(
-                @Nonnull final SetMultimap<QNameModule, QNameModule> modulesDeviatedByModules) {
+        public @NonNull BuildAction setModulesWithSupportedDeviations(
+                final @NonNull SetMultimap<QNameModule, QNameModule> modulesDeviatedByModules) {
             checkState(!modulesDeviatedByModulesSet, "Modules with supported deviations should be set only once.");
             context.setModulesDeviatedByModules(requireNonNull(modulesDeviatedByModules));
             modulesDeviatedByModulesSet = true;
index 3ff877f6817337646f0910b7a7b7803251f151b1..6a1080ab37cc654d99988850f0957397617b12e0 100644 (file)
@@ -19,7 +19,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 import java.util.function.Function;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
@@ -52,7 +52,7 @@ final class ModifierImpl implements ModelActionBuilder {
         return prereq;
     }
 
-    private <T> AbstractPrerequisite<T> addMutation(final AbstractPrerequisite<T> mutation) {
+    private <T> @NonNull AbstractPrerequisite<T> addMutation(final @NonNull AbstractPrerequisite<T> mutation) {
         LOG.trace("Modifier {} adding mutation {}", this, mutation);
         mutations.add(mutation);
         return mutation;
@@ -91,7 +91,7 @@ final class ModifierImpl implements ModelActionBuilder {
         actionApplied = true;
     }
 
-    private <K, C extends StmtContext<?, ?, ?>, N extends StatementNamespace<K, ?, ?>> AbstractPrerequisite<C>
+    private <K, C extends StmtContext<?, ?, ?>, N extends StatementNamespace<K, ?, ?>> @NonNull AbstractPrerequisite<C>
             requiresCtxImpl(final StmtContext<?, ?, ?> context, final Class<N> namespace, final K key,
                     final ModelProcessingPhase phase)  {
         checkNotRegistered();
@@ -102,7 +102,7 @@ final class ModifierImpl implements ModelActionBuilder {
         return addedToNs;
     }
 
-    private <K, C extends StmtContext<?, ?, ?>, N extends StatementNamespace<K, ?, ?>> AbstractPrerequisite<C>
+    private <K, C extends StmtContext<?, ?, ?>, N extends StatementNamespace<K, ?, ?>> @NonNull AbstractPrerequisite<C>
             requiresCtxImpl(final StmtContext<?, ?, ?> context, final Class<N> namespace,
                     final NamespaceKeyCriterion<K> criterion, final ModelProcessingPhase phase)  {
         checkNotRegistered();
@@ -113,7 +113,7 @@ final class ModifierImpl implements ModelActionBuilder {
         return addedToNs;
     }
 
-    private <C extends StmtContext<?, ?, ?>> AbstractPrerequisite<C> requiresCtxImpl(final C context,
+    private <C extends StmtContext<?, ?, ?>> @NonNull AbstractPrerequisite<C> requiresCtxImpl(final C context,
             final ModelProcessingPhase phase) {
         checkNotRegistered();
 
@@ -152,23 +152,20 @@ final class ModifierImpl implements ModelActionBuilder {
         return false;
     }
 
-    @Nonnull
     @Override
     public <C extends Mutable<?, ?, ?>, T extends C> Prerequisite<C> mutatesCtx(final T context,
             final ModelProcessingPhase phase) {
         return addMutation(new PhaseMutation<>(contextImpl(context), phase));
     }
 
-    @Nonnull
     @Override
-    public <A,D extends DeclaredStatement<A>,E extends EffectiveStatement<A, D>>
+    public <A, D extends DeclaredStatement<A>, E extends EffectiveStatement<A, D>>
             AbstractPrerequisite<StmtContext<A, D, E>> requiresCtx(final StmtContext<A, D, E> context,
                     final ModelProcessingPhase phase) {
         return requiresCtxImpl(context, phase);
     }
 
 
-    @Nonnull
     @Override
     public <K, N extends StatementNamespace<K, ?, ?>> Prerequisite<StmtContext<?, ?, ?>> requiresCtx(
             final StmtContext<?, ?, ?> context, final Class<N> namespace, final K key,
@@ -176,7 +173,6 @@ final class ModifierImpl implements ModelActionBuilder {
         return requiresCtxImpl(context, namespace, key, phase);
     }
 
-    @Nonnull
     @Override
     public <K, N extends StatementNamespace<K, ?, ?>> Prerequisite<StmtContext<?, ?, ?>> requiresCtx(
             final StmtContext<?, ?, ?> context, final Class<N> namespace, final NamespaceKeyCriterion<K> criterion,
@@ -184,14 +180,12 @@ final class ModifierImpl implements ModelActionBuilder {
         return requiresCtxImpl(context, namespace, criterion, phase);
     }
 
-    @Nonnull
     @Override
     public <D extends DeclaredStatement<?>> Prerequisite<D> requiresDeclared(
             final StmtContext<?, ? extends D, ?> context) {
         return requiresCtxImpl(context, FULL_DECLARATION).transform(StmtContext::buildDeclared);
     }
 
-    @Nonnull
     @Override
     public <K, D extends DeclaredStatement<?>, N extends StatementNamespace<K, ? extends D, ?>> Prerequisite<D>
             requiresDeclared(final StmtContext<?, ?, ?> context, final Class<N> namespace, final K key) {
@@ -200,7 +194,6 @@ final class ModifierImpl implements ModelActionBuilder {
         return rawContext.transform(StmtContext::buildDeclared);
     }
 
-    @Nonnull
     @Override
     public <K, D extends DeclaredStatement<?>, N extends StatementNamespace<K, ? extends D, ?>>
             AbstractPrerequisite<StmtContext<?, D, ?>> requiresDeclaredCtx(final StmtContext<?, ?, ?> context,
@@ -208,14 +201,12 @@ final class ModifierImpl implements ModelActionBuilder {
         return requiresCtxImpl(context, namespace, key, FULL_DECLARATION);
     }
 
-    @Nonnull
     @Override
     public <E extends EffectiveStatement<?, ?>> Prerequisite<E> requiresEffective(
             final StmtContext<?, ?, ? extends E> stmt) {
         return requiresCtxImpl(stmt, EFFECTIVE_MODEL).transform(StmtContext::buildEffective);
     }
 
-    @Nonnull
     @Override
     public <K, E extends EffectiveStatement<?, ?>, N extends StatementNamespace<K, ?, ? extends E>> Prerequisite<E>
             requiresEffective(final StmtContext<?, ?, ?> context, final Class<N> namespace, final K key) {
@@ -224,7 +215,6 @@ final class ModifierImpl implements ModelActionBuilder {
         return rawContext.transform(StmtContext::buildEffective);
     }
 
-    @Nonnull
     @Override
     public <K, E extends EffectiveStatement<?, ?>, N extends StatementNamespace<K, ?, ? extends E>>
             AbstractPrerequisite<StmtContext<?, ?, E>> requiresEffectiveCtx(final StmtContext<?, ?, ?> context,
@@ -232,14 +222,12 @@ final class ModifierImpl implements ModelActionBuilder {
         return requiresCtxImpl(contextImpl(context), namespace, key, EFFECTIVE_MODEL);
     }
 
-    @Nonnull
     @Override
     public <N extends IdentifierNamespace<?, ?>> Prerequisite<Mutable<?, ?, ?>> mutatesNs(
             final Mutable<?, ?, ?> context, final Class<N> namespace) {
         return addMutation(new NamespaceMutation<>(contextImpl(context), namespace));
     }
 
-    @Nonnull
     @Override
     public <K, E extends EffectiveStatement<?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>>
             AbstractPrerequisite<Mutable<?, ?, E>> mutatesEffectiveCtx(final StmtContext<?, ?, ?> context,
@@ -247,7 +235,6 @@ final class ModifierImpl implements ModelActionBuilder {
         return mutatesCtxImpl(context, namespace, key, EFFECTIVE_MODEL);
     }
 
-    @Nonnull
     @Override
     public <K, E extends EffectiveStatement<?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>>
             AbstractPrerequisite<Mutable<?, ?, E>> mutatesEffectiveCtxPath(final StmtContext<?, ?, ?> context,
@@ -293,7 +280,7 @@ final class ModifierImpl implements ModelActionBuilder {
             return isApplied();
         }
 
-        final <O> Prerequisite<O> transform(final Function<? super T, O> transformation) {
+        final <O> @NonNull Prerequisite<O> transform(final Function<? super T, O> transformation) {
             return context -> transformation.apply(resolve(context));
         }
 
index fab75626c454ea235ab086553723f9fb357e9398..1ac8f661e3fb9eca9213f838022046d9bfd02f28 100644 (file)
@@ -14,7 +14,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
 
@@ -58,7 +58,7 @@ abstract class NamespaceBehaviourWithListeners<K, V, N extends IdentifierNamespa
             super(contextNode);
         }
 
-        abstract boolean onValueAdded(@Nonnull K key, @Nonnull V value);
+        abstract boolean onValueAdded(@NonNull K key, @NonNull V value);
     }
 
     protected final NamespaceBehaviour<K, V, N> delegate;
index 15f2d4f6e26b536bca5eda973329700b00dd3ec6..34e27ea8b5f6b729df9def9d40512d9bae9c771f 100644 (file)
@@ -7,10 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.parser.stmt.reactor;
 
-import com.google.common.base.Preconditions;
-import com.google.common.base.Verify;
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkState;
+import static com.google.common.base.Verify.verifyNotNull;
+import static java.util.Objects.requireNonNull;
+
 import java.util.Optional;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
@@ -24,8 +26,8 @@ final class StatementContextWriter implements StatementWriter {
     private StatementContextBase<?, ?, ?> current;
 
     StatementContextWriter(final SourceSpecificContext ctx, final ModelProcessingPhase phase) {
-        this.ctx = Preconditions.checkNotNull(ctx);
-        this.phase = Preconditions.checkNotNull(phase);
+        this.ctx = requireNonNull(ctx);
+        this.phase = requireNonNull(phase);
     }
 
     @Override
@@ -46,8 +48,8 @@ final class StatementContextWriter implements StatementWriter {
 
     @Override
     public void storeStatement(final int expectedChildren, final boolean fullyDefined) {
-        Preconditions.checkState(current != null);
-        Preconditions.checkArgument(expectedChildren >= 0);
+        checkState(current != null);
+        checkArgument(expectedChildren >= 0);
         current.resizeSubstatements(expectedChildren);
 
         if (fullyDefined) {
@@ -56,21 +58,20 @@ final class StatementContextWriter implements StatementWriter {
     }
 
     @Override
-    public void startStatement(final int childId, @Nonnull final QName name, final String argument,
-            @Nonnull final StatementSourceReference ref) {
+    public void startStatement(final int childId, final QName name, final String argument,
+            final StatementSourceReference ref) {
         final Optional<StatementContextBase<?, ?, ?>> existing = ctx.lookupDeclaredChild(current, childId);
         current = existing.isPresent() ? existing.get()
-                :  Verify.verifyNotNull(ctx.createDeclaredChild(current, childId, name, argument, ref));
+                :  verifyNotNull(ctx.createDeclaredChild(current, childId, name, argument, ref));
     }
 
     @Override
-    public void endStatement(@Nonnull final StatementSourceReference ref) {
-        Preconditions.checkState(current != null);
+    public void endStatement(final StatementSourceReference ref) {
+        checkState(current != null);
         current.endDeclared(phase);
         exitStatement();
     }
 
-    @Nonnull
     @Override
     public ModelProcessingPhase getPhase() {
         return phase;
index b50b00924fc0e90e52760c70485109ef78dbc9eb..c93ff44a1c24e80a74afe8e777c0a2b4aa9b9e60 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 import static org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase.EFFECTIVE_MODEL;
 
 import java.util.Collection;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
@@ -131,7 +131,7 @@ public interface ModelActionBuilder {
      * @param context Statement context which needs to complete the transition.
      * @return A {@link Prerequisite} returning the declared statement of the requested context.
      */
-    @Nonnull <D extends DeclaredStatement<?>> Prerequisite<D> requiresDeclared(StmtContext<?, ? extends D, ?> context);
+    <D extends DeclaredStatement<?>> @NonNull Prerequisite<D> requiresDeclared(StmtContext<?, ? extends D, ?> context);
 
     /**
      * Create a requirement on specified statement to be declared.
@@ -139,8 +139,8 @@ public interface ModelActionBuilder {
      * @deprecated Undocumented method. Use at your own risk.
      */
     @Deprecated
-    @Nonnull <K, D extends DeclaredStatement<?>, N extends StatementNamespace<K, ? extends D, ?>>
-        Prerequisite<D> requiresDeclared(StmtContext<?, ?, ?> context, Class<N> namespace, K key);
+    <K, D extends DeclaredStatement<?>, N extends StatementNamespace<K, ? extends D, ?>>
+        @NonNull Prerequisite<D> requiresDeclared(StmtContext<?, ?, ?> context, Class<N> namespace, K key);
 
     /**
      * Action requires that the specified context completes specified phase before {@link #apply(InferenceAction)}
@@ -150,13 +150,13 @@ public interface ModelActionBuilder {
      * @param phase ModelProcessingPhase which must have completed
      * @return A {@link Prerequisite} returning the requested context.
      */
-    @Nonnull <A, D extends DeclaredStatement<A>, E extends EffectiveStatement<A, D>>
-        Prerequisite<StmtContext<A, D, E>> requiresCtx(StmtContext<A, D, E> context, ModelProcessingPhase phase);
+    <A, D extends DeclaredStatement<A>, E extends EffectiveStatement<A, D>> @NonNull Prerequisite<StmtContext<A, D, E>>
+        requiresCtx(StmtContext<A, D, E> context, ModelProcessingPhase phase);
 
-    @Nonnull <K, N extends StatementNamespace<K, ?, ?>> Prerequisite<StmtContext<?, ?, ?>> requiresCtx(
+    <K, N extends StatementNamespace<K, ?, ?>> @NonNull Prerequisite<StmtContext<?, ?, ?>> requiresCtx(
         StmtContext<?, ?, ?> context, Class<N> namespace, K key, ModelProcessingPhase phase);
 
-    @Nonnull <K, N extends StatementNamespace<K, ?, ?>> Prerequisite<StmtContext<?, ?, ?>> requiresCtx(
+    <K, N extends StatementNamespace<K, ?, ?>> @NonNull Prerequisite<StmtContext<?, ?, ?>> requiresCtx(
             StmtContext<?, ?, ?> context, Class<N> namespace, NamespaceKeyCriterion<K> criterion,
             ModelProcessingPhase phase);
 
@@ -167,17 +167,17 @@ public interface ModelActionBuilder {
      * @param context Target statement context
      * @return A {@link Prerequisite} returning the requested context.
      */
-    default @Nonnull <T extends Mutable<?, ?, ?>> Prerequisite<T> mutatesEffectiveCtx(final T context) {
+    default <T extends Mutable<?, ?, ?>> @NonNull Prerequisite<T> mutatesEffectiveCtx(final T context) {
         return mutatesCtx(context, EFFECTIVE_MODEL);
     }
 
-    @Nonnull <K, E extends EffectiveStatement<?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>>
-        Prerequisite<Mutable<?, ?, E>> mutatesEffectiveCtx(StmtContext<?, ?, ?> context, Class<N> namespace, K key);
+    <K, E extends EffectiveStatement<?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>>
+        @NonNull Prerequisite<Mutable<?, ?, E>> mutatesEffectiveCtx(StmtContext<?, ?, ?> context, Class<N> namespace,
+                K key);
 
-    default @Nonnull <K, E extends EffectiveStatement<?, ?>,
-            N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>> Prerequisite<Mutable<?, ?, E>>
-                mutatesEffectiveCtxPath(final StmtContext<?, ?, ?> context, final Class<N> namespace,
-                        final Iterable<K> keys) {
+    default <K, E extends EffectiveStatement<?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>>
+        @NonNull Prerequisite<Mutable<?, ?, E>> mutatesEffectiveCtxPath(final StmtContext<?, ?, ?> context,
+                final Class<N> namespace, final Iterable<K> keys) {
         throw new UnsupportedOperationException(getClass() + " does not implement mutatesEffectiveCtxPath()");
     }
 
@@ -188,7 +188,7 @@ public interface ModelActionBuilder {
      * @param context Target statement context
      * @return A {@link Prerequisite} returning the requested context.
      */
-    @Nonnull <C extends Mutable<?, ?, ?>, T extends C> Prerequisite<C> mutatesCtx(T context,
+    <C extends Mutable<?, ?, ?>, T extends C> @NonNull Prerequisite<C> mutatesCtx(T context,
             ModelProcessingPhase phase);
 
     /**
@@ -207,8 +207,9 @@ public interface ModelActionBuilder {
      * @deprecated Undocumented method. Use at your own risk.
      */
     @Deprecated
-    @Nonnull <K, D extends DeclaredStatement<?>, N extends StatementNamespace<K, ? extends D, ?>>
-        Prerequisite<StmtContext<?, D, ?>> requiresDeclaredCtx(StmtContext<?, ?, ?> context, Class<N> namespace, K key);
+    <K, D extends DeclaredStatement<?>, N extends StatementNamespace<K, ? extends D, ?>>
+        @NonNull Prerequisite<StmtContext<?, D, ?>> requiresDeclaredCtx(StmtContext<?, ?, ?> context,
+                Class<N> namespace, K key);
 
     /**
      * Create a requirement on specified statement to become effective.
@@ -216,7 +217,7 @@ public interface ModelActionBuilder {
      * @deprecated Undocumented method. Use at your own risk.
      */
     @Deprecated
-    @Nonnull <E extends EffectiveStatement<?, ?>> Prerequisite<E> requiresEffective(
+    <E extends EffectiveStatement<?, ?>> @NonNull Prerequisite<E> requiresEffective(
             StmtContext<?, ?, ? extends E> stmt);
 
     /**
@@ -225,8 +226,8 @@ public interface ModelActionBuilder {
      * @deprecated Undocumented method. Use at your own risk.
      */
     @Deprecated
-    @Nonnull <K, E extends EffectiveStatement<?, ?>, N extends StatementNamespace<K, ?, ? extends E>>
-        Prerequisite<E> requiresEffective(StmtContext<?, ?, ?> context, Class<N> namespace, K key);
+    <K, E extends EffectiveStatement<?, ?>, N extends StatementNamespace<K, ?, ? extends E>>
+        @NonNull Prerequisite<E> requiresEffective(StmtContext<?, ?, ?> context, Class<N> namespace, K key);
 
     /**
      * Create a requirement on specified statement context to become effective.
@@ -234,9 +235,9 @@ public interface ModelActionBuilder {
      * @deprecated Undocumented method. Use at your own risk.
      */
     @Deprecated
-    @Nonnull <K, E extends EffectiveStatement<?, ?>, N extends StatementNamespace<K, ?, ? extends E>>
-    Prerequisite<StmtContext<?, ?, E>> requiresEffectiveCtx(StmtContext<?, ?, ?> context, Class<N> namespace,
-            K key);
+    <K, E extends EffectiveStatement<?, ?>, N extends StatementNamespace<K, ?, ? extends E>>
+        @NonNull Prerequisite<StmtContext<?, ?, E>> requiresEffectiveCtx(StmtContext<?, ?, ?> context,
+                Class<N> namespace, K key);
 
     /**
      * Mark the fact that this action is mutating a namespace.
@@ -244,6 +245,6 @@ public interface ModelActionBuilder {
      * @deprecated Undocumented method. Use at your own risk.
      */
     @Deprecated
-    @Nonnull <N extends IdentifierNamespace<?, ?>> Prerequisite<Mutable<?,?,?>> mutatesNs(
-            Mutable<?,?, ?> ctx, Class<N> namespace);
+    <N extends IdentifierNamespace<?, ?>> @NonNull Prerequisite<Mutable<?,?,?>> mutatesNs(Mutable<?,?, ?> ctx,
+            Class<N> namespace);
 }
index 1f7922ab708ca0145497869b6d05a3e555fafa5d..918163148970d5b6086882f3a5598a0713471589 100644 (file)
@@ -7,15 +7,18 @@
  */
 package org.opendaylight.yangtools.yang.parser.spi.meta;
 
-import javax.annotation.Nullable;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
 
+@NonNullByDefault
+@SuppressFBWarnings("NP_NULL_PARAM_DEREF_NONVIRTUAL")
 public enum ModelProcessingPhase {
     INIT(null),
 
     /**
-     * Preliminary cross-source relationship resolution phase which collects
-     * available module names and module namespaces. It is necessary in order to
-     * correct resolution of unknown statements used in linkage phase (e.g.
+     * Preliminary cross-source relationship resolution phase which collects available module names and module
+     * namespaces. It is necessary in order to correct resolution of unknown statements used in linkage phase (e.g.
      * semantic version of yang modules).
      */
     SOURCE_PRE_LINKAGE(INIT),
@@ -36,13 +39,13 @@ public enum ModelProcessingPhase {
     FULL_DECLARATION(STATEMENT_DEFINITION),
     EFFECTIVE_MODEL(FULL_DECLARATION);
 
-    private final ModelProcessingPhase previousPhase;
+    private final @Nullable ModelProcessingPhase previousPhase;
 
-    ModelProcessingPhase(@Nullable ModelProcessingPhase previous) {
+    ModelProcessingPhase(final @Nullable ModelProcessingPhase previous) {
         this.previousPhase = previous;
     }
 
-    public ModelProcessingPhase getPreviousPhase() {
+    public @Nullable ModelProcessingPhase getPreviousPhase() {
         return previousPhase;
     }
 }
index 07dee3eafa7dd4fc206dca8976e860c98357c92c..e9c93ac8a78ab939187f28e5ed3aa3e09d93adc9 100644 (file)
@@ -15,9 +15,8 @@ import com.google.common.base.Verify;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.Identifiable;
 import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
 
@@ -30,12 +29,9 @@ import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
  * For common behaviour models please use static factories {@link #global(Class)}, {@link #sourceLocal(Class)} and
  * {@link #treeScoped(Class)}.
  *
- * @param <K>
- *            Key type
- * @param <V>
- *            Value type
- * @param <N>
- *            Namespace Type
+ * @param <K> Key type
+ * @param <V> Value type
+ * @param <N> Namespace Type
  */
 public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K, V>> implements Identifiable<Class<N>> {
 
@@ -81,14 +77,11 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
          */
         StorageNodeType getStorageNodeType();
 
-        @Nullable
-        NamespaceStorageNode getParentNamespaceStorage();
+        @Nullable NamespaceStorageNode getParentNamespaceStorage();
 
-        @Nullable
-        <K, V, N extends IdentifierNamespace<K, V>> V getFromLocalStorage(Class<N> type, K key);
+        <K, V, N extends IdentifierNamespace<K, V>> @Nullable V getFromLocalStorage(Class<N> type, K key);
 
-        @Nullable
-        <K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAllFromLocalStorage(Class<N> type);
+        <K, V, N extends IdentifierNamespace<K, V>> @Nullable Map<K, V> getAllFromLocalStorage(Class<N> type);
 
         /**
          * Populate specified namespace with a key/value pair, overwriting previous contents. Similar to
@@ -99,8 +92,7 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
          * @param value Value
          * @return Previously-stored value, or null if the key was not present
          */
-        @Nullable
-        <K, V, N extends IdentifierNamespace<K, V>> V putToLocalStorage(Class<N> type, K key, V value);
+        <K, V, N extends IdentifierNamespace<K, V>> @Nullable V putToLocalStorage(Class<N> type, K key, V value);
 
         /**
          * Populate specified namespace with a key/value pair unless the key is already associated with a value. Similar
@@ -111,8 +103,8 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
          * @param value Value
          * @return Preexisting value or null if there was no previous mapping
          */
-        @Nullable
-        <K, V, N extends IdentifierNamespace<K, V>> V putToLocalStorageIfAbsent(Class<N> type, K key, V value);
+        <K, V, N extends IdentifierNamespace<K, V>> @Nullable V putToLocalStorageIfAbsent(Class<N> type, K key,
+                V value);
     }
 
     private final @NonNull Class<N> identifier;
@@ -125,14 +117,13 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
      * Creates a global namespace behaviour for supplied namespace type. Global behaviour stores and loads all values
      * from root {@link NamespaceStorageNode} with type of {@link StorageNodeType#GLOBAL}.
      *
-     * @param identifier
-     *            Namespace identifier.
+     * @param identifier Namespace identifier.
      * @param <K> type parameter
      * @param <V> type parameter
      * @param <N> type parameter
      * @return global namespace behaviour for supplied namespace type.
      */
-    public static @Nonnull <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> global(
+    public static <K, V, N extends IdentifierNamespace<K, V>> @NonNull NamespaceBehaviour<K, V, N> global(
             final Class<N> identifier) {
         return new StorageSpecific<>(identifier, StorageNodeType.GLOBAL);
     }
@@ -142,19 +133,18 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
      * and loads all values from closest {@link NamespaceStorageNode} ancestor with type
      * of {@link StorageNodeType#SOURCE_LOCAL_SPECIAL}.
      *
-     * @param identifier
-     *            Namespace identifier.
+     * @param identifier Namespace identifier.
      * @param <K> type parameter
      * @param <V> type parameter
      * @param <N> type parameter
      * @return source-local namespace behaviour for supplied namespace type.
      */
-    public static <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> sourceLocal(
+    public static <K, V, N extends IdentifierNamespace<K, V>> @NonNull NamespaceBehaviour<K, V, N> sourceLocal(
             final Class<N> identifier) {
         return new StorageSpecific<>(identifier, StorageNodeType.SOURCE_LOCAL_SPECIAL);
     }
 
-    public static <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> statementLocal(
+    public static <K, V, N extends IdentifierNamespace<K, V>> @NonNull NamespaceBehaviour<K, V, N> statementLocal(
            final Class<N> identifier) {
         return new StorageSpecific<>(identifier, StorageNodeType.STATEMENT_LOCAL);
     }
@@ -164,14 +154,13 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
      * behaviour stores and loads all values from closest {@link NamespaceStorageNode} ancestor with type
      * of {@link StorageNodeType#ROOT_STATEMENT_LOCAL}.
      *
-     * @param identifier
-     *            Namespace identifier.
+     * @param identifier Namespace identifier.
      * @param <K> type parameter
      * @param <V> type parameter
      * @param <N> type parameter
      * @return root-statement-local namespace behaviour for supplied namespace type.
      */
-    public static <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> rootStatementLocal(
+    public static <K, V, N extends IdentifierNamespace<K, V>> @NonNull NamespaceBehaviour<K, V, N> rootStatementLocal(
             final Class<N> identifier) {
         return new StorageSpecific<>(identifier, StorageNodeType.ROOT_STATEMENT_LOCAL);
     }
@@ -187,7 +176,7 @@ public abstract class NamespaceBehaviour<K, V, N extends IdentifierNamespace<K,
      * @param <N> type parameter
      * @return tree-scoped namespace behaviour for supplied namespace type.
      */
-    public static <K, V, N extends IdentifierNamespace<K, V>> NamespaceBehaviour<K, V, N> treeScoped(
+    public static <K, V, N extends IdentifierNamespace<K, V>> @NonNull NamespaceBehaviour<K, V, N> treeScoped(
             final Class<N> identifier) {
         return new TreeScoped<>(identifier);
     }
index 90d20108b0bcd62e1223a8db8320a595aaf2c1fb..a3ea67526b19312c47e01ffe975ac9889ded8ece 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 
@@ -64,7 +64,7 @@ public abstract class NamespaceKeyCriterion<K> {
      * @param key Key to be matched
      * @return True if the key matches this criterion, false otherwise.
      */
-    public abstract boolean match(@Nonnull K key);
+    public abstract boolean match(@NonNull K key);
 
     /**
      * Select the better match from two candidate keys.
@@ -73,7 +73,7 @@ public abstract class NamespaceKeyCriterion<K> {
      * @param second Second key
      * @return Selected key, must be either first or second key, by identity.
      */
-    public abstract K select(@Nonnull K first, @Nonnull K second);
+    public abstract K select(@NonNull K first, @NonNull K second);
 
     @Override
     public final String toString() {
index e8094c2d987bf87180c8df1d5612a5a2e69c8296..db52ffe17f5d49508e097eb7f83d0ab70f8d07f7 100644 (file)
@@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.parser.spi.source;
 
 import com.google.common.annotations.Beta;
 import java.util.Optional;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
@@ -102,8 +102,8 @@ public interface StatementWriter {
      *            error.
      * @throws SourceException if statement is not valid according to current context.
      */
-    void startStatement(int childId, @Nonnull QName name, @Nullable String argument,
-            @Nonnull StatementSourceReference ref);
+    void startStatement(int childId, @NonNull QName name, @Nullable String argument,
+            @NonNull StatementSourceReference ref);
 
     /**
      * Ends current opened statement.
@@ -112,12 +112,12 @@ public interface StatementWriter {
      *            error.
      * @throws SourceException if closed statement is not valid in current context, or there is no such statement
      */
-    void endStatement(@Nonnull StatementSourceReference ref);
+    void endStatement(@NonNull StatementSourceReference ref);
 
     /**
      * Return current model processing phase.
      *
      * @return current processing phase
      */
-    @Nonnull ModelProcessingPhase getPhase();
+    @NonNull ModelProcessingPhase getPhase();
 }