Eliminate IdentityStatement.getBase() 32/65032/5
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 2 Nov 2017 09:26:51 +0000 (10:26 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 3 Nov 2017 15:46:02 +0000 (16:46 +0100)
RFC7950 metamodel indicates an identity can have multiple base
identities -- remove the singular getBase() in favor of getBases().

Change-Id: I145832a69d16d09af19849eeba3e6334e02ebb7d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IdentityStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IdentityRefSpecificationImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/IdentityStatementImpl.java
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeclaredStatementsTest.java

index f94506306bc5e6054da06e0ce6e9d91abf847e08..2d260b89d51fe635db7d82fe7c2058b06190761d 100644 (file)
@@ -7,10 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
@@ -19,18 +17,9 @@ public interface IdentityStatement extends DeclaredStatement<QName>, Documentati
     @Nonnull QName getName();
 
     /**
-     * Returns the base identity.
-     * @deprecated use {@link #getBases()} instead
+     * Returns the base identities of this identity.
      *
-     * @return base statement
+     * @return base identities, empty if there are none.
      */
-    @Deprecated
-    @Nullable
-    BaseStatement getBase();
-
-    // FIXME: version 2.0.0: make this method non-default
-    @Nonnull default Collection<? extends BaseStatement> getBases() {
-        final BaseStatement base = getBase();
-        return base == null ? ImmutableList.of() : ImmutableList.of(base);
-    }
+    @Nonnull Collection<? extends BaseStatement> getBases();
 }
index 7d18f8f40cbbe34966a8b7abc6257c501793ef5d..d11b04f629ee02d03455cc6ba9df4f1bbd8a6979 100644 (file)
@@ -72,16 +72,6 @@ public interface TypeStatement extends DeclaredStatement<String> {
 
     @Rfc6020AbnfRule("identityref-specification")
     interface IdentityRefSpecification extends TypeStatement {
-
-        /**
-         * Returns the base identity.
-         * @deprecated use {@link #getBases()} instead
-         *
-         * @return base statement
-         */
-        @Deprecated
-        @Nonnull BaseStatement getBase();
-
         /**
          * Returns the base statements.
          *
index 4c9d85f4955b89e12991fc127f384ae8b78cec3d..2509363a29ba9c6cda9c0415c20f3e8812523cc0 100644 (file)
@@ -87,12 +87,6 @@ public class IdentityRefSpecificationImpl extends AbstractDeclaredStatement<Stri
         return argument();
     }
 
-    @Nonnull
-    @Override
-    public BaseStatement getBase() {
-        return firstDeclared(BaseStatement.class);
-    }
-
     @Nonnull
     @Override
     public Collection<? extends BaseStatement> getBases() {
index 86066ea0331f0eb54b61221d3cf9603817dad935..24f77d668e8e48736c5140b423133125a8d16f2b 100644 (file)
@@ -95,11 +95,6 @@ public class IdentityStatementImpl extends AbstractDeclaredStatement<QName> impl
         return firstDeclared(ReferenceStatement.class);
     }
 
-    @Override
-    public BaseStatement getBase() {
-        return firstDeclared(BaseStatement.class);
-    }
-
     @Nonnull
     @Override
     public Collection<? extends BaseStatement> getBases() {
index c59d212bfb1b009a3ac8d468b44f36109636b5fb..d899619ab06e43c94a084cf177b563440ea3e7ee 100644 (file)
@@ -352,7 +352,7 @@ public class DeclaredStatementsTest {
             }
         }
 
-        assertEquals("test-base-id", identityStatement.getBase().getName().getLocalName());
+        assertEquals("test-base-id", identityStatement.getBases().iterator().next().getName().getLocalName());
         assertEquals(Status.CURRENT, identityStatement.getStatus().getValue());
         assertEquals("test description", identityStatement.getDescription().getText());
         assertEquals("test reference", identityStatement.getReference().getText());