From dfafad2e9bd41a21d8cc34e396916a1c4b833221 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 24 Oct 2018 02:28:11 +0200 Subject: [PATCH] Convert parser-{reactor,spi} classes to JDT annotations Migrate away from JSR-305 annotations to JDT annotations. Change-Id: I268808a6da501eedce9bc34df0d9c5f70b145230 JIRA: YANGTOOLS-907 Signed-off-by: Robert Varga --- .../stmt/reactor/BuildGlobalContext.java | 6 +-- .../reactor/CrossSourceStatementReactor.java | 36 ++++++------- .../parser/stmt/reactor/ModifierImpl.java | 27 +++------- .../NamespaceBehaviourWithListeners.java | 4 +- .../stmt/reactor/StatementContextWriter.java | 27 +++++----- .../parser/spi/meta/ModelActionBuilder.java | 53 ++++++++++--------- .../parser/spi/meta/ModelProcessingPhase.java | 17 +++--- .../parser/spi/meta/NamespaceBehaviour.java | 47 +++++++--------- .../spi/meta/NamespaceKeyCriterion.java | 6 +-- .../parser/spi/source/StatementWriter.java | 12 ++--- 10 files changed, 108 insertions(+), 127 deletions(-) diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java index 0bd6efdb76..66d31f98fd 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/BuildGlobalContext.java @@ -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, diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/CrossSourceStatementReactor.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/CrossSourceStatementReactor.java index 2adb14f665..cc2d8bbb5a 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/CrossSourceStatementReactor.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/CrossSourceStatementReactor.java @@ -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 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 sources) { + public @NonNull BuildAction addSources(final @NonNull Collection sources) { for (final StatementStreamSource source : sources) { - context.addSource(source); + context.addSource(requireNonNull(source)); } return this; } @@ -136,16 +137,15 @@ public final class CrossSourceStatementReactor { *

* 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 libSources) { + public @NonNull BuildAction addLibSources(final Collection 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 supportedFeatures) { + public @NonNull BuildAction setSupportedFeatures(final @NonNull Set 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 modulesDeviatedByModules) { + public @NonNull BuildAction setModulesWithSupportedDeviations( + final @NonNull SetMultimap modulesDeviatedByModules) { checkState(!modulesDeviatedByModulesSet, "Modules with supported deviations should be set only once."); context.setModulesDeviatedByModules(requireNonNull(modulesDeviatedByModules)); modulesDeviatedByModulesSet = true; diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java index 3ff877f681..6a1080ab37 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ModifierImpl.java @@ -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 AbstractPrerequisite addMutation(final AbstractPrerequisite mutation) { + private @NonNull AbstractPrerequisite addMutation(final @NonNull AbstractPrerequisite 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 , N extends StatementNamespace> AbstractPrerequisite + private , N extends StatementNamespace> @NonNull AbstractPrerequisite requiresCtxImpl(final StmtContext context, final Class namespace, final K key, final ModelProcessingPhase phase) { checkNotRegistered(); @@ -102,7 +102,7 @@ final class ModifierImpl implements ModelActionBuilder { return addedToNs; } - private , N extends StatementNamespace> AbstractPrerequisite + private , N extends StatementNamespace> @NonNull AbstractPrerequisite requiresCtxImpl(final StmtContext context, final Class namespace, final NamespaceKeyCriterion criterion, final ModelProcessingPhase phase) { checkNotRegistered(); @@ -113,7 +113,7 @@ final class ModifierImpl implements ModelActionBuilder { return addedToNs; } - private > AbstractPrerequisite requiresCtxImpl(final C context, + private > @NonNull AbstractPrerequisite requiresCtxImpl(final C context, final ModelProcessingPhase phase) { checkNotRegistered(); @@ -152,23 +152,20 @@ final class ModifierImpl implements ModelActionBuilder { return false; } - @Nonnull @Override public , T extends C> Prerequisite mutatesCtx(final T context, final ModelProcessingPhase phase) { return addMutation(new PhaseMutation<>(contextImpl(context), phase)); } - @Nonnull @Override - public ,E extends EffectiveStatement> + public , E extends EffectiveStatement> AbstractPrerequisite> requiresCtx(final StmtContext context, final ModelProcessingPhase phase) { return requiresCtxImpl(context, phase); } - @Nonnull @Override public > Prerequisite> requiresCtx( final StmtContext context, final Class namespace, final K key, @@ -176,7 +173,6 @@ final class ModifierImpl implements ModelActionBuilder { return requiresCtxImpl(context, namespace, key, phase); } - @Nonnull @Override public > Prerequisite> requiresCtx( final StmtContext context, final Class namespace, final NamespaceKeyCriterion criterion, @@ -184,14 +180,12 @@ final class ModifierImpl implements ModelActionBuilder { return requiresCtxImpl(context, namespace, criterion, phase); } - @Nonnull @Override public > Prerequisite requiresDeclared( final StmtContext context) { return requiresCtxImpl(context, FULL_DECLARATION).transform(StmtContext::buildDeclared); } - @Nonnull @Override public , N extends StatementNamespace> Prerequisite requiresDeclared(final StmtContext context, final Class namespace, final K key) { @@ -200,7 +194,6 @@ final class ModifierImpl implements ModelActionBuilder { return rawContext.transform(StmtContext::buildDeclared); } - @Nonnull @Override public , N extends StatementNamespace> AbstractPrerequisite> requiresDeclaredCtx(final StmtContext context, @@ -208,14 +201,12 @@ final class ModifierImpl implements ModelActionBuilder { return requiresCtxImpl(context, namespace, key, FULL_DECLARATION); } - @Nonnull @Override public > Prerequisite requiresEffective( final StmtContext stmt) { return requiresCtxImpl(stmt, EFFECTIVE_MODEL).transform(StmtContext::buildEffective); } - @Nonnull @Override public , N extends StatementNamespace> Prerequisite requiresEffective(final StmtContext context, final Class namespace, final K key) { @@ -224,7 +215,6 @@ final class ModifierImpl implements ModelActionBuilder { return rawContext.transform(StmtContext::buildEffective); } - @Nonnull @Override public , N extends StatementNamespace> AbstractPrerequisite> requiresEffectiveCtx(final StmtContext context, @@ -232,14 +222,12 @@ final class ModifierImpl implements ModelActionBuilder { return requiresCtxImpl(contextImpl(context), namespace, key, EFFECTIVE_MODEL); } - @Nonnull @Override public > Prerequisite> mutatesNs( final Mutable context, final Class namespace) { return addMutation(new NamespaceMutation<>(contextImpl(context), namespace)); } - @Nonnull @Override public , N extends IdentifierNamespace>> AbstractPrerequisite> mutatesEffectiveCtx(final StmtContext context, @@ -247,7 +235,6 @@ final class ModifierImpl implements ModelActionBuilder { return mutatesCtxImpl(context, namespace, key, EFFECTIVE_MODEL); } - @Nonnull @Override public , N extends IdentifierNamespace>> AbstractPrerequisite> mutatesEffectiveCtxPath(final StmtContext context, @@ -293,7 +280,7 @@ final class ModifierImpl implements ModelActionBuilder { return isApplied(); } - final Prerequisite transform(final Function transformation) { + final @NonNull Prerequisite transform(final Function transformation) { return context -> transformation.apply(resolve(context)); } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java index fab75626c4..1ac8f661e3 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java @@ -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 delegate; diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextWriter.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextWriter.java index 15f2d4f6e2..34e27ea8b5 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextWriter.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextWriter.java @@ -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> 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; diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java index b50b00924f..c93ff44a1c 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelActionBuilder.java @@ -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 > Prerequisite requiresDeclared(StmtContext context); + > @NonNull Prerequisite requiresDeclared(StmtContext 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 , N extends StatementNamespace> - Prerequisite requiresDeclared(StmtContext context, Class namespace, K key); + , N extends StatementNamespace> + @NonNull Prerequisite requiresDeclared(StmtContext context, Class 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 , E extends EffectiveStatement> - Prerequisite> requiresCtx(StmtContext context, ModelProcessingPhase phase); + , E extends EffectiveStatement> @NonNull Prerequisite> + requiresCtx(StmtContext context, ModelProcessingPhase phase); - @Nonnull > Prerequisite> requiresCtx( + > @NonNull Prerequisite> requiresCtx( StmtContext context, Class namespace, K key, ModelProcessingPhase phase); - @Nonnull > Prerequisite> requiresCtx( + > @NonNull Prerequisite> requiresCtx( StmtContext context, Class namespace, NamespaceKeyCriterion 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 > Prerequisite mutatesEffectiveCtx(final T context) { + default > @NonNull Prerequisite mutatesEffectiveCtx(final T context) { return mutatesCtx(context, EFFECTIVE_MODEL); } - @Nonnull , N extends IdentifierNamespace>> - Prerequisite> mutatesEffectiveCtx(StmtContext context, Class namespace, K key); + , N extends IdentifierNamespace>> + @NonNull Prerequisite> mutatesEffectiveCtx(StmtContext context, Class namespace, + K key); - default @Nonnull , - N extends IdentifierNamespace>> Prerequisite> - mutatesEffectiveCtxPath(final StmtContext context, final Class namespace, - final Iterable keys) { + default , N extends IdentifierNamespace>> + @NonNull Prerequisite> mutatesEffectiveCtxPath(final StmtContext context, + final Class namespace, final Iterable 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 , T extends C> Prerequisite mutatesCtx(T context, + , T extends C> @NonNull Prerequisite mutatesCtx(T context, ModelProcessingPhase phase); /** @@ -207,8 +207,9 @@ public interface ModelActionBuilder { * @deprecated Undocumented method. Use at your own risk. */ @Deprecated - @Nonnull , N extends StatementNamespace> - Prerequisite> requiresDeclaredCtx(StmtContext context, Class namespace, K key); + , N extends StatementNamespace> + @NonNull Prerequisite> requiresDeclaredCtx(StmtContext context, + Class 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 > Prerequisite requiresEffective( + > @NonNull Prerequisite requiresEffective( StmtContext stmt); /** @@ -225,8 +226,8 @@ public interface ModelActionBuilder { * @deprecated Undocumented method. Use at your own risk. */ @Deprecated - @Nonnull , N extends StatementNamespace> - Prerequisite requiresEffective(StmtContext context, Class namespace, K key); + , N extends StatementNamespace> + @NonNull Prerequisite requiresEffective(StmtContext context, Class 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 , N extends StatementNamespace> - Prerequisite> requiresEffectiveCtx(StmtContext context, Class namespace, - K key); + , N extends StatementNamespace> + @NonNull Prerequisite> requiresEffectiveCtx(StmtContext context, + Class 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 > Prerequisite> mutatesNs( - Mutable ctx, Class namespace); + > @NonNull Prerequisite> mutatesNs(Mutable ctx, + Class namespace); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelProcessingPhase.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelProcessingPhase.java index 1f7922ab70..9181631489 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelProcessingPhase.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/ModelProcessingPhase.java @@ -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; } } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java index 07dee3eafa..e9c93ac8a7 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java @@ -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 - * Key type - * @param - * Value type - * @param - * Namespace Type + * @param Key type + * @param Value type + * @param Namespace Type */ public abstract class NamespaceBehaviour> implements Identifiable> { @@ -81,14 +77,11 @@ public abstract class NamespaceBehaviour> V getFromLocalStorage(Class type, K key); + > @Nullable V getFromLocalStorage(Class type, K key); - @Nullable - > Map getAllFromLocalStorage(Class type); + > @Nullable Map getAllFromLocalStorage(Class type); /** * Populate specified namespace with a key/value pair, overwriting previous contents. Similar to @@ -99,8 +92,7 @@ public abstract class NamespaceBehaviour> V putToLocalStorage(Class type, K key, V value); + > @Nullable V putToLocalStorage(Class 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> V putToLocalStorageIfAbsent(Class type, K key, V value); + > @Nullable V putToLocalStorageIfAbsent(Class type, K key, + V value); } private final @NonNull Class identifier; @@ -125,14 +117,13 @@ public abstract class NamespaceBehaviour type parameter * @param type parameter * @param type parameter * @return global namespace behaviour for supplied namespace type. */ - public static @Nonnull > NamespaceBehaviour global( + public static > @NonNull NamespaceBehaviour global( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.GLOBAL); } @@ -142,19 +133,18 @@ public abstract class NamespaceBehaviour type parameter * @param type parameter * @param type parameter * @return source-local namespace behaviour for supplied namespace type. */ - public static > NamespaceBehaviour sourceLocal( + public static > @NonNull NamespaceBehaviour sourceLocal( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.SOURCE_LOCAL_SPECIAL); } - public static > NamespaceBehaviour statementLocal( + public static > @NonNull NamespaceBehaviour statementLocal( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.STATEMENT_LOCAL); } @@ -164,14 +154,13 @@ public abstract class NamespaceBehaviour type parameter * @param type parameter * @param type parameter * @return root-statement-local namespace behaviour for supplied namespace type. */ - public static > NamespaceBehaviour rootStatementLocal( + public static > @NonNull NamespaceBehaviour rootStatementLocal( final Class identifier) { return new StorageSpecific<>(identifier, StorageNodeType.ROOT_STATEMENT_LOCAL); } @@ -187,7 +176,7 @@ public abstract class NamespaceBehaviour type parameter * @return tree-scoped namespace behaviour for supplied namespace type. */ - public static > NamespaceBehaviour treeScoped( + public static > @NonNull NamespaceBehaviour treeScoped( final Class identifier) { return new TreeScoped<>(identifier); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java index 90d20108b0..a3ea67526b 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceKeyCriterion.java @@ -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 { * @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 { * @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() { diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/StatementWriter.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/StatementWriter.java index e8094c2d98..db52ffe17f 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/StatementWriter.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/StatementWriter.java @@ -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(); } -- 2.36.6