From: Robert Varga Date: Tue, 23 Oct 2018 10:28:16 +0000 (+0200) Subject: Cleanup ModelStatement/StatementDefinition non-nullness X-Git-Tag: v2.1.3~47 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=f1dbdfede163e8fc269766de4b07a0c23ffed5d9;p=yangtools.git Cleanup ModelStatement/StatementDefinition non-nullness This patch removes @Nonnull in favor of @NonNull, adjusting implementations to remove Eclipse warnings. JIRA: YANGTOOLS-907 Change-Id: I6d04dd3d807316f8cc39fe3481e0252c20673460 Signed-off-by: Robert Varga --- diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/YangStmtMapping.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/YangStmtMapping.java index 3a801c0214..a0f5d4abe5 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/YangStmtMapping.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/YangStmtMapping.java @@ -10,8 +10,8 @@ package org.opendaylight.yangtools.yang.model.api; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; -import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @@ -230,9 +230,9 @@ public enum YangStmtMapping implements StatementDefinition { YANG_VERSION(YangVersionStatement.class, YangVersionEffectiveStatement.class, "yang-version", "value"), YIN_ELEMENT(YinElementStatement.class, YinElementEffectiveStatement.class, "yin-element", "value"); - private final Class> declaredType; - private final Class> effectiveType; - private final QName name; + private final @NonNull Class> declaredType; + private final @NonNull Class> effectiveType; + private final @NonNull QName name; private final QName argument; private final boolean yinElement; @@ -260,27 +260,26 @@ public enum YangStmtMapping implements StatementDefinition { this.yinElement = yinElement; } - @Nonnull private static QName yinQName(final String nameStr) { + private static @NonNull QName yinQName(final String nameStr) { return QName.create(YangConstants.RFC6020_YIN_MODULE, nameStr).intern(); } - @Nonnull @Override public QName getStatementName() { return name; } @Override - @Nullable public QName getArgumentName() { + @Nullable + public QName getArgumentName() { return argument; } @Override - @Nonnull public Class> getDeclaredRepresentationClass() { + public Class> getDeclaredRepresentationClass() { return declaredType; } - @Nonnull @Override public Class> getEffectiveRepresentationClass() { return effectiveType; diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/ModelStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/ModelStatement.java index 6dae109fb1..e1c6d1e01f 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/ModelStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/ModelStatement.java @@ -7,8 +7,8 @@ */ package org.opendaylight.yangtools.yang.model.api.meta; -import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; /** * Model statement. There are two base types of model statements: @@ -34,13 +34,14 @@ public interface ModelStatement { * * @return definition of this statement. */ - @Nonnull StatementDefinition statementDefinition(); + @NonNull StatementDefinition statementDefinition(); /** * Returns statement argument. * * @return statement argument or null if statement does not have argument. */ + // FIXME: figure out @NonNull argument override in subclasses and switch to JDT @Nullable @Nullable A argument(); /** @@ -50,5 +51,5 @@ public interface ModelStatement { * * @return statement source. */ - @Nonnull StatementSource getStatementSource(); + @NonNull StatementSource getStatementSource(); } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/StatementDefinition.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/StatementDefinition.java index a91dd7eeb4..95c8cc0b14 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/StatementDefinition.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/StatementDefinition.java @@ -7,8 +7,8 @@ */ package org.opendaylight.yangtools.yang.model.api.meta; -import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.common.QName; @@ -29,8 +29,7 @@ public interface StatementDefinition extends Immutable { * * @return Name of the statement */ - @Nonnull - QName getStatementName(); + @NonNull QName getStatementName(); /** * Returns name of statement argument or null, if statement does not have @@ -38,6 +37,8 @@ public interface StatementDefinition extends Immutable { * * @return argument name or null, if statement does not take argument. */ + // FIXME: 3.0.0: make this return an Optional, which will include the boolean value + // of isArgumentYinElement() @Nullable QName getArgumentName(); @@ -52,8 +53,7 @@ public interface StatementDefinition extends Immutable { * @return class which represents declared version of statement associated * with this definition. */ - @Nonnull - Class> getDeclaredRepresentationClass(); + @NonNull Class> getDeclaredRepresentationClass(); /** * Returns class which represents derived behaviour from supplied statement. @@ -65,8 +65,7 @@ public interface StatementDefinition extends Immutable { * @return class which represents effective version of statement associated * with this definition */ - @Nonnull - Class> getEffectiveRepresentationClass(); + @NonNull Class> getEffectiveRepresentationClass(); /** * Returns true, if argument of statement is represented as value of yin @@ -76,5 +75,6 @@ public interface StatementDefinition extends Immutable { * @return returns true, if statement argument is represented as value of * yin element, otherwise returns false. */ + // FIXME: 3.0.0: integrate this with getArgumentName() boolean isArgumentYinElement(); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ModelDefinedStatementDefinition.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ModelDefinedStatementDefinition.java index aa55c67ab2..6524d7a15e 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ModelDefinedStatementDefinition.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ModelDefinedStatementDefinition.java @@ -11,6 +11,7 @@ import static java.util.Objects.requireNonNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -23,7 +24,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement; * to be declared in a model. */ final class ModelDefinedStatementDefinition implements StatementDefinition { - private final QName statementName; + private final @NonNull QName statementName; private final QName argumentName; private final boolean yinElement; diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionsMapping.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionsMapping.java index 36b7ba7866..93e7d487d2 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionsMapping.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionsMapping.java @@ -10,8 +10,7 @@ package org.opendaylight.yangtools.yang.thirdparty.plugin; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -23,9 +22,9 @@ public enum ThirdPartyExtensionsMapping implements StatementDefinition { ThirdPartyExtensionStatementImpl.class, ThirdPartyExtensionEffectiveStatementImpl.class, "third-party-extension", "argument-name", false); - private final Class> type; - private final Class> effectiveType; - private final QName name; + private final @NonNull Class> type; + private final @NonNull Class> effectiveType; + private final @NonNull QName name; private final QName argument; private final boolean yinElement; @@ -50,35 +49,29 @@ public enum ThirdPartyExtensionsMapping implements StatementDefinition { this.yinElement = yinElement; } - @Nonnull - private static QName createQName(final String namespace, final String localName) { + private static @NonNull QName createQName(final String namespace, final String localName) { return QName.create(namespace, localName).intern(); } - @Nonnull - private static QName createQName(final String namespace, final String revision, final String localName) { + private static @NonNull QName createQName(final String namespace, final String revision, final String localName) { return QName.create(namespace, revision, localName).intern(); } - @Nonnull @Override public QName getStatementName() { return name; } @Override - @Nullable public QName getArgumentName() { return argument; } @Override - @Nonnull public Class> getDeclaredRepresentationClass() { return type; } - @Nonnull @Override public Class> getEffectiveRepresentationClass() { return effectiveType;