Disconnect AnnotationEffectiveStatement and AnnotationSchemaNode 33/80733/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 8 Mar 2019 08:07:12 +0000 (09:07 +0100)
committerRobert Varga <nite@hq.sk>
Fri, 8 Mar 2019 09:04:50 +0000 (09:04 +0000)
These interfaces should be independent, make sure this is the case.
Also update AnnotationStatement with common accessors.

Change-Id: Ib59c5f99a36ecb3cf30d5a77e4dd539bf6b92277
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/AnnotationEffectiveStatement.java
yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/AnnotationStatement.java
yang/rfc7952-parser-support/src/main/java/org/opendaylight/yangtools/rfc7952/parser/AnnotationStatementSupport.java

index 0cb9f3779b64cb511cdb5a3a29ce3c86946774f8..86d9e4fb2c1b79d8c0b642d773156f435efd1435 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.rfc7952.model.api;
 import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypeDefinitionAware;
 
 /**
  * Effective statement representation of 'annotation' extension defined in
@@ -17,6 +18,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
  */
 @Beta
 public interface AnnotationEffectiveStatement extends EffectiveStatement<QName, AnnotationStatement>,
-        AnnotationSchemaNode {
+        TypeDefinitionAware {
 
 }
index aac43fb5437f1bce325a11dae949416341d7866a..303b1f701e3e382ee504465b0a350e9106b658e6 100644 (file)
@@ -9,6 +9,9 @@ package org.opendaylight.yangtools.rfc7952.model.api;
 
 import com.google.common.annotations.Beta;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.stmt.DocumentedDeclaredStatement.WithStatus;
+import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureAwareDeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypeAwareDeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
 
 /**
@@ -16,6 +19,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
  * <a href="https://tools.ietf.org/html/rfc7952">RFC7952</a>.
  */
 @Beta
-public interface AnnotationStatement extends UnknownStatement<QName> {
+public interface AnnotationStatement extends UnknownStatement<QName>, WithStatus<QName>,
+    IfFeatureAwareDeclaredStatement<QName>, TypeAwareDeclaredStatement {
 
 }
index 85fdcc5c54e1de391ff235a4902cc3d3bda7cd4f..637c079a4a82cf01698e9f57ee32a28f00e2ab78 100644 (file)
@@ -7,7 +7,9 @@
  */
 package org.opendaylight.yangtools.rfc7952.parser;
 
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.rfc7952.model.api.AnnotationEffectiveStatement;
+import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode;
 import org.opendaylight.yangtools.rfc7952.model.api.AnnotationStatement;
 import org.opendaylight.yangtools.rfc7952.model.api.MetadataStatements;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -43,10 +45,10 @@ public final class AnnotationStatementSupport
     }
 
     private static final class Effective extends UnknownEffectiveStatementBase<QName, AnnotationStatement>
-            implements AnnotationEffectiveStatement {
+            implements AnnotationEffectiveStatement, AnnotationSchemaNode {
 
-        private final TypeDefinition<?> type;
-        private final SchemaPath path;
+        private final @NonNull TypeDefinition<?> type;
+        private final @NonNull SchemaPath path;
 
         Effective(final StmtContext<QName, AnnotationStatement, ?> ctx) {
             super(ctx);
@@ -80,6 +82,11 @@ public final class AnnotationStatementSupport
         public TypeDefinition<?> getType() {
             return type;
         }
+
+        @Override
+        public TypeDefinition<?> getTypeDefinition() {
+            return type;
+        }
     }
 
     private static final AnnotationStatementSupport INSTANCE = new AnnotationStatementSupport(