Cleanup ModelStatement/StatementDefinition non-nullness 92/77192/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 23 Oct 2018 10:28:16 +0000 (12:28 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 23 Oct 2018 10:59:59 +0000 (12:59 +0200)
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 <robert.varga@pantheon.tech>
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/YangStmtMapping.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/ModelStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/StatementDefinition.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ModelDefinedStatementDefinition.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionsMapping.java

index 3a801c0214d877314fd415efaed8dd4a20c65492..a0f5d4abe5ca6bcf30bcb3dddd574348e701c13e 100644 (file)
@@ -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<? extends DeclaredStatement<?>> declaredType;
-    private final Class<? extends EffectiveStatement<?, ?>> effectiveType;
-    private final QName name;
+    private final @NonNull Class<? extends DeclaredStatement<?>> declaredType;
+    private final @NonNull Class<? extends EffectiveStatement<?, ?>> 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<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
+    public Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
         return declaredType;
     }
 
-    @Nonnull
     @Override
     public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
         return effectiveType;
index 6dae109fb1878f5ae780396cc5c6c381bb67e991..e1c6d1e01f261e684b6663dace307e183415399c 100644 (file)
@@ -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<A> {
      *
      * @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<A> {
      *
      * @return statement source.
      */
-    @Nonnull StatementSource getStatementSource();
+    @NonNull StatementSource getStatementSource();
 }
index a91dd7eeb489cc7dcacce078e473e4657864c27a..95c8cc0b14273e3ef99057fbb93c907bf2a1406d 100644 (file)
@@ -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<StatementArgumentDefinition>, 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<? extends DeclaredStatement<?>> getDeclaredRepresentationClass();
+    @NonNull Class<? extends DeclaredStatement<?>> 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<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass();
+    @NonNull Class<? extends EffectiveStatement<?, ?>> 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();
 }
index aa55c67ab2e83a7086a695ffd2b0a89353ca578d..6524d7a15ef6fdec46eb93f8184b7b8174a8403e 100644 (file)
@@ -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;
 
index 36b7ba7866e68d8063aeac68efa3e5a70fa6ff68..93e7d487d2c14014c8dffa2c9648c629126bb5cb 100644 (file)
@@ -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<? extends DeclaredStatement<?>> type;
-    private final Class<? extends EffectiveStatement<?, ?>> effectiveType;
-    private final QName name;
+    private final @NonNull Class<? extends DeclaredStatement<?>> type;
+    private final @NonNull Class<? extends EffectiveStatement<?, ?>> 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<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
         return type;
     }
 
-    @Nonnull
     @Override
     public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
         return effectiveType;