Rename yang.binding.{Identifiable,Identifier} 97/106597/6
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Jun 2023 15:14:27 +0000 (17:14 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Jun 2023 21:31:41 +0000 (23:31 +0200)
Key represents the base to which we usually bind, implying also
Map.get(key). KeyAware is a good name for an interface defining key()
method.

JIRA: MDSAL-830
Change-Id: I7e5b6e3a8f50daed6799164425a7f394b82fdef5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
54 files changed:
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/DataObjectModification.java
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/InstanceNotificationService.java
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/query/DescendantQueryBuilder.java
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/query/MatchBuilderPath.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/AbstractDataObjectModification.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/InstanceNotificationServiceAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/KeyedInstanceNotificationListenerAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/query/DefaultDescendantQueryBuilder.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/query/DefaultMatchBuilderPath.java
binding/mdsal-binding-dom-codec-api/src/main/java/org/opendaylight/mdsal/binding/dom/codec/api/BindingStreamEventWriter.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecPrototype.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectStreamer.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectStreamerGenerator.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ForwardingBindingStreamEventWriter.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/KeyedListNodeCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMap.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapIterState.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapLookupState.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/InstanceIdentifierSerializeDeserializeTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/InstanceIdentifierTest.java
binding/mdsal-binding-dom-codec/src/test/java/org/opendaylight/mdsal/binding/dom/codec/impl/LazyBindingMapTest.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/KeyGenerator.java
binding/mdsal-binding-generator/src/main/java/org/opendaylight/mdsal/binding/generator/impl/reactor/ListGenerator.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/AugmentRelativeXPathTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/AugmentedTypeTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedTypesLeafrefTest.java
binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/GeneratedTypesTest.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/AbstractBuilderTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderGenerator.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderImplTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/ListKeyTemplate.xtend
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/CompilationTest.java
binding/mdsal-binding-model-ri/src/main/java/org/opendaylight/mdsal/binding/model/ri/BindingTypes.java
binding/mdsal-binding-model-ri/src/test/java/org/opendaylight/mdsal/binding/model/ri/BindingTypesTest.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Key.java [moved from binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Identifier.java with 61% similarity]
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyAware.java [moved from binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Identifiable.java with 86% similarity]
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifier.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierV2.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedListAction.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedListNotification.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/contract/Naming.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/util/BindingMap.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifierTest.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierTest.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/Node.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeChild.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeChildKey.java
binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/test/mock/NodeKey.java
entityownership/mdsal-eos-binding-api/src/test/java/org/opendaylight/mdsal/eos/binding/api/EntityTest.java

index ed4729059bd6db61371b67ead56a5eb53e82d77b..b58fea7bd3a400acd866b1c2d21bb680f9d2df32 100644 (file)
@@ -14,9 +14,9 @@ import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 /**
  * Modified Data Object. Represents a modification of DataObject, which has a few kinds as indicated by
@@ -163,7 +163,7 @@ public interface DataObjectModification<T extends DataObject> extends
      * @throws IllegalArgumentException If supplied {@code listItem} class is not valid child according
      *         to generated model.
      */
-    <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>> @Nullable DataObjectModification<N>
+    <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>> @Nullable DataObjectModification<N>
             getModifiedChildListItem(@NonNull Class<N> listItem, @NonNull K listKey);
 
     /**
@@ -175,8 +175,8 @@ public interface DataObjectModification<T extends DataObject> extends
      * @throws IllegalArgumentException If supplied {@code listItem} class is not valid child according
      *         to generated model.
      */
-    <H extends ChoiceIn<? super T> & DataObject, C extends Identifiable<K> & ChildOf<? super H>,
-            K extends Identifier<C>> @Nullable DataObjectModification<C> getModifiedChildListItem(
+    <H extends ChoiceIn<? super T> & DataObject, C extends KeyAware<K> & ChildOf<? super H>,
+            K extends Key<C>> @Nullable DataObjectModification<C> getModifiedChildListItem(
                     @NonNull Class<H> caseType, @NonNull Class<C> listItem, @NonNull K listKey);
 
     /**
index 7c3bc1383d2b7feed6600aa4d4c04110afbfbaf8..784e3aab7a45043b727ae2247687c6bcef0e6a67 100644 (file)
@@ -14,10 +14,10 @@ import java.util.concurrent.Executor;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceNotification;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.KeyedListNotification;
 
@@ -37,11 +37,11 @@ public interface InstanceNotificationService extends BindingService {
         return registerListener(spec, path, listener, MoreExecutors.directExecutor());
     }
 
-    <P extends DataObject & Identifiable<K>, N extends KeyedListNotification<N, P, K>, K extends Identifier<P>>
+    <P extends DataObject & KeyAware<K>, N extends KeyedListNotification<N, P, K>, K extends Key<P>>
         @NonNull Registration registerListener(InstanceNotificationSpec<N, P> spec, KeyedInstanceIdentifier<P, K> path,
             KeyedListListener<P, N, K> listener, Executor executor);
 
-    default <P extends DataObject & Identifiable<K>, N extends KeyedListNotification<N, P, K>, K extends Identifier<P>>
+    default <P extends DataObject & KeyAware<K>, N extends KeyedListNotification<N, P, K>, K extends Key<P>>
             @NonNull Registration registerListener(final InstanceNotificationSpec<N, P> spec,
                 final KeyedInstanceIdentifier<P, K> path, final KeyedListListener<P, N, K> listener) {
         return registerListener(spec, path, listener, MoreExecutors.directExecutor());
@@ -65,8 +65,8 @@ public interface InstanceNotificationService extends BindingService {
      * Interface for listeners on instance (YANG 1.1) notifications defined in a {@code list} with a {@code key}.
      */
     @FunctionalInterface
-    interface KeyedListListener<P extends DataObject & Identifiable<K>, N extends KeyedListNotification<N, P, K>,
-            K extends Identifier<P>> extends EventListener {
+    interface KeyedListListener<P extends DataObject & KeyAware<K>, N extends KeyedListNotification<N, P, K>,
+            K extends Key<P>> extends EventListener {
         /**
          * Process an instance notification.
          *
index 189510c38cda866f180ab9c04e2a2e9b09ebb15f..b66f535107cbad38b64d59dd99c9e56436cf49ad 100644 (file)
@@ -12,8 +12,8 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 /**
  * Intermediate Query builder stage, which allows the specification of the query result type to be built up via
@@ -46,8 +46,8 @@ public interface DescendantQueryBuilder<T extends DataObject> extends Structural
      * @return This builder
      * @throws NullPointerException if childClass is null
      */
-    <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>>
-        @NonNull DescendantQueryBuilder<N> extractChild(Class<@NonNull N> listItem, K listKey);
+    <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>> @NonNull DescendantQueryBuilder<N> extractChild(
+        Class<@NonNull N> listItem, K listKey);
 
     /**
      * Add a child path component to the specification of what needs to be extracted. This method, along with its
index 3a6266121059e7cee8bd3a25d01df3a252aa727e..b975b90af4d147740e50d8c92b30ef49c3368eb9 100644 (file)
@@ -15,8 +15,8 @@ import org.opendaylight.yangtools.yang.binding.BaseIdentity;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.TypeObject;
 import org.opendaylight.yangtools.yang.common.Decimal64;
 import org.opendaylight.yangtools.yang.common.Empty;
@@ -60,8 +60,8 @@ public interface MatchBuilderPath<O extends DataObject, T extends DataObject> ex
      * @return This builder
      * @throws NullPointerException if childClass is null
      */
-    <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>>
-        @NonNull MatchBuilderPath<O, N> extractChild(Class<@NonNull N> listItem, K listKey);
+    <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>> @NonNull MatchBuilderPath<O, N> extractChild(
+        Class<@NonNull N> listItem, K listKey);
 
     /**
      * Match an {@code boolean} leaf's value.
index 73e44d1788f6881c414cb5569da10520f3b38b49..4bcb915c4141d178699bf9d2550dbe543866d737 100644 (file)
@@ -33,11 +33,11 @@ import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode;
@@ -242,15 +242,15 @@ abstract sealed class AbstractDataObjectModification<T extends DataObject, N ext
 
     @Override
     @SuppressWarnings("unchecked")
-    public final <C extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<C>> DataObjectModification<C>
+    public final <C extends KeyAware<K> & ChildOf<? super T>, K extends Key<C>> DataObjectModification<C>
             getModifiedChildListItem(final Class<C> listItem, final K listKey) {
         return (DataObjectModification<C>) getModifiedChild(IdentifiableItem.of(listItem, listKey));
     }
 
     @Override
     @SuppressWarnings("unchecked")
-    public final <H extends ChoiceIn<? super T> & DataObject, C extends Identifiable<K> & ChildOf<? super H>,
-            K extends Identifier<C>> DataObjectModification<C> getModifiedChildListItem(final Class<H> caseType,
+    public final <H extends ChoiceIn<? super T> & DataObject, C extends KeyAware<K> & ChildOf<? super H>,
+            K extends Key<C>> DataObjectModification<C> getModifiedChildListItem(final Class<H> caseType,
                     final Class<C> listItem, final K listKey) {
         return (DataObjectModification<C>) getModifiedChild(IdentifiableItem.of(caseType, listItem, listKey));
     }
index b746e368d199bf34993ca88ea2d0bb9957fc8b58..5bc0446c28acf894adceecff02f07fd35a69664c 100644 (file)
@@ -24,10 +24,10 @@ import org.opendaylight.mdsal.dom.api.DOMInstanceNotificationService;
 import org.opendaylight.mdsal.dom.api.DOMService;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceNotification;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.KeyedListNotification;
 
@@ -69,7 +69,7 @@ final class InstanceNotificationServiceAdapter implements InstanceNotificationSe
     }
 
     @Override
-    public <P extends DataObject & Identifiable<K>, N extends KeyedListNotification<N, P, K>, K extends Identifier<P>>
+    public <P extends DataObject & KeyAware<K>, N extends KeyedListNotification<N, P, K>, K extends Key<P>>
             Registration registerListener(final InstanceNotificationSpec<N, P> spec,
                 final KeyedInstanceIdentifier<P, K> path, final KeyedListListener<P, N, K> listener,
                 final Executor executor) {
index a1d9a6d0a42598a6c8b829fe952acd6c40575386..2c5bbf7b89fc717fc54086db63b2be4da82013f4 100644 (file)
@@ -12,13 +12,13 @@ import static com.google.common.base.Verify.verify;
 import java.util.concurrent.Executor;
 import org.opendaylight.mdsal.binding.api.InstanceNotificationService.KeyedListListener;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.KeyedListNotification;
 
-final class KeyedInstanceNotificationListenerAdapter<P extends DataObject & Identifiable<K>, K extends Identifier<P>,
+final class KeyedInstanceNotificationListenerAdapter<P extends DataObject & KeyAware<K>, K extends Key<P>,
             N extends KeyedListNotification<N, P, K>>
         extends AbstractInstanceNotificationListenerAdapter<P, N, KeyedListListener<P, N, K>> {
     KeyedInstanceNotificationListenerAdapter(final AdapterContext adapterContext, final Class<N> notificationClass,
index 59461ef04b4802902609507b86bf9dc43bb38fcb..019aa11f1bdefad8e09f9f3142733f3eba7a9fd8 100644 (file)
@@ -14,9 +14,9 @@ import org.opendaylight.mdsal.binding.api.query.QueryExpression;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 final class DefaultDescendantQueryBuilder<R extends DataObject, T extends DataObject>
         implements DescendantQueryBuilder<T> {
@@ -45,8 +45,8 @@ final class DefaultDescendantQueryBuilder<R extends DataObject, T extends DataOb
 
     @Override
     @SuppressWarnings("unchecked")
-    public <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>>
-            DescendantQueryBuilder<N> extractChild(final Class<@NonNull N> listItem, final K listKey) {
+    public <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>> DescendantQueryBuilder<N> extractChild(
+            final Class<@NonNull N> listItem, final K listKey) {
         childPath.child(listItem, listKey);
         return (DefaultDescendantQueryBuilder<R, N>) this;
     }
index 6ebbe4cb8858540f9fc1acc383da908bc7f4dc99..1205257bc7f1854017ae08dae418aa99cd17d7d6 100644 (file)
@@ -18,9 +18,9 @@ import org.opendaylight.yangtools.yang.binding.BaseIdentity;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.TypeObject;
 import org.opendaylight.yangtools.yang.common.Decimal64;
 import org.opendaylight.yangtools.yang.common.Empty;
@@ -58,8 +58,8 @@ final class DefaultMatchBuilderPath<O extends DataObject, T extends DataObject>
 
     @Override
     @SuppressWarnings("unchecked")
-    public <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>>
-            MatchBuilderPath<O, N> extractChild(final Class<@NonNull N> listItem, final K listKey) {
+    public <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>> MatchBuilderPath<O, N> extractChild(
+            final Class<@NonNull N> listItem, final K listKey) {
         target.child(listItem, listKey);
         return (MatchBuilderPath<O, N>) this;
     }
index 063a7a0bee32b35afa2cf3d85f33ca1dd8d6d202..9cd835cfe8e601f11df7a1cb2b45b113ad5075c2 100644 (file)
@@ -14,8 +14,8 @@ import java.io.IOException;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 /**
  * Event Stream Writer for Binding Representation.
@@ -277,8 +277,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable {
      *             <code>choice</code> <code>unkeyed list</code> node.
      * @throws IOException if an underlying IO error occurs
      */
-    <T extends DataObject & Identifiable<?>> void startMapNode(Class<T> mapEntryType, int childSizeHint)
-            throws IOException;
+    <T extends DataObject & KeyAware<?>> void startMapNode(Class<T> mapEntryType, int childSizeHint) throws IOException;
 
     /**
      * Emits start of ordered map node event.
@@ -303,7 +302,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable {
      *             <code>choice</code> <code>unkeyed list</code> node.
      * @throws IOException if an underlying IO error occurs
      */
-    <T extends DataObject & Identifiable<?>> void startOrderedMapNode(Class<T> mapEntryType, int childSizeHint)
+    <T extends DataObject & KeyAware<?>> void startOrderedMapNode(Class<T> mapEntryType, int childSizeHint)
             throws IOException;
 
     /**
@@ -337,7 +336,7 @@ public interface BindingStreamEventWriter extends Closeable, Flushable {
      *             If node was emitted outside <code>map entry</code> node.
      * @throws IOException if an underlying IO error occurs
      */
-    void startMapEntryNode(Identifier<?> keyValues, int childSizeHint) throws IOException;
+    void startMapEntryNode(Key<?> keyValues, int childSizeHint) throws IOException;
 
     /**
      * Emits start of choice node.
index eeeafb072152fc61fc272bca872bc2cf99efa851..c85dfa3ca0fbabc65c9e017ef0d07fbc987ebc33 100644 (file)
@@ -61,10 +61,10 @@ import org.opendaylight.yangtools.yang.binding.BaseIdentity;
 import org.opendaylight.yangtools.yang.binding.BaseNotification;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.Notification;
 import org.opendaylight.yangtools.yang.binding.OpaqueObject;
 import org.opendaylight.yangtools.yang.binding.RpcInput;
@@ -471,11 +471,11 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri
 
     @Override
     public IdentifiableItemCodec getPathArgumentCodec(final Class<?> listClz, final ListRuntimeType type) {
-        final Optional<Class<Identifier<?>>> optIdentifier = ClassLoaderUtils.findFirstGenericArgument(listClz,
-                Identifiable.class);
+        final Optional<Class<Key<?>>> optIdentifier = ClassLoaderUtils.findFirstGenericArgument(listClz,
+                KeyAware.class);
         checkState(optIdentifier.isPresent(), "Failed to find identifier for %s", listClz);
 
-        final Class<Identifier<?>> identifier = optIdentifier.orElseThrow();
+        final Class<Key<?>> identifier = optIdentifier.orElseThrow();
         final Map<QName, ValueContext> valueCtx = new HashMap<>();
         for (final ValueNodeCodecContext leaf : getLeafNodes(identifier, type.statement()).values()) {
             final QName name = leaf.getDomPathArgument().getNodeType();
index 598241165f84b345eb383e3d0a84207549105359..61885141bf607c7ad2ceba51ac22207d89b9aaa1 100644 (file)
@@ -21,8 +21,8 @@ import org.opendaylight.yangtools.concepts.Delegator;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.OpaqueObject;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
@@ -186,20 +186,20 @@ final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWrite
     }
 
     @Override
-    public void startMapEntryNode(final Identifier<?> key, final int childSizeHint) throws IOException {
+    public void startMapEntryNode(final Key<?> key, final int childSizeHint) throws IOException {
         duplicateSchemaEnter();
         NodeIdentifierWithPredicates identifier = ((KeyedListNodeCodecContext<?, ?>) current()).serialize(key);
         delegate.startMapEntryNode(identifier, childSizeHint);
     }
 
     @Override
-    public <T extends DataObject & Identifiable<?>> void startMapNode(final Class<T> mapEntryType,
-            final int childSizeHint) throws IOException {
+    public <T extends DataObject & KeyAware<?>> void startMapNode(final Class<T> mapEntryType, final int childSizeHint)
+            throws IOException {
         delegate.startMapNode(enter(mapEntryType, NodeIdentifier.class), childSizeHint);
     }
 
     @Override
-    public <T extends DataObject & Identifiable<?>> void startOrderedMapNode(final Class<T> mapEntryType,
+    public <T extends DataObject & KeyAware<?>> void startOrderedMapNode(final Class<T> mapEntryType,
             final int childSizeHint) throws IOException {
         delegate.startOrderedMapNode(enter(mapEntryType, NodeIdentifier.class), childSizeHint);
     }
index 8a248e30b25e5ef4e1d1c1fad1cf512554d85c68..ab6080409f96e9ab6bf31a8c5bfe74025df52ca1 100644 (file)
@@ -16,8 +16,8 @@ import org.opendaylight.mdsal.binding.runtime.api.ContainerRuntimeType;
 import org.opendaylight.mdsal.binding.runtime.api.ListRuntimeType;
 import org.opendaylight.mdsal.binding.runtime.api.RuntimeTypeContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceEffectiveStatement;
 
@@ -54,7 +54,7 @@ non-sealed class DataObjectCodecPrototype<T extends RuntimeTypeContainer> extend
             }
             return new ContainerNodeCodecContext(this);
         } else if (type instanceof ListRuntimeType) {
-            return Identifiable.class.isAssignableFrom(getBindingClass())
+            return KeyAware.class.isAssignableFrom(getBindingClass())
                     ? KeyedListNodeCodecContext.create((DataContainerCodecPrototype<ListRuntimeType>) this)
                             : new ListNodeCodecContext(this);
         } else if (type instanceof ChoiceRuntimeType) {
index 839a78beb6a4f51917e086b97f580f585b9a7be1..e9d705e64a14c4a7b11582f84943c1ba4618209b 100644 (file)
@@ -20,7 +20,7 @@ import org.opendaylight.yangtools.yang.binding.Augmentable;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.OpaqueObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -131,7 +131,7 @@ public abstract class DataObjectStreamer<T extends DataObject> {
         }
     }
 
-    protected static final <E extends DataObject & Identifiable<?>> void streamMap(final Class<E> childClass,
+    protected static final <E extends DataObject & KeyAware<?>> void streamMap(final Class<E> childClass,
             final DataObjectStreamer<E> childStreamer, final DataObjectSerializerRegistry registry,
             final BindingStreamEventWriter writer, final Map<?, ? extends E> value) throws IOException {
         final int size = nullSize(value);
@@ -141,7 +141,7 @@ public abstract class DataObjectStreamer<T extends DataObject> {
         }
     }
 
-    protected static final <E extends DataObject & Identifiable<?>> void streamOrderedMap(final Class<E> childClass,
+    protected static final <E extends DataObject & KeyAware<?>> void streamOrderedMap(final Class<E> childClass,
             final DataObjectStreamer<E> childStreamer, final DataObjectSerializerRegistry registry,
             final BindingStreamEventWriter writer, final List<? extends E> value) throws IOException {
         final int size = nullSize(value);
index e2bc8bafa3ec983e9fea554d2cd0d6c14481efa7..5af3fc9c059204c3a5f867af2b8abfaa0918a668 100644 (file)
@@ -60,8 +60,9 @@ import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.binding.Augmentable;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
+import org.opendaylight.yangtools.yang.binding.contract.Naming;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
@@ -109,9 +110,9 @@ final class DataObjectStreamerGenerator<T extends DataObjectStreamer<?>> impleme
     // startMapEntryNode(obj.key(), UNKNOWN_SIZE)
     private static final StackManipulation START_MAP_ENTRY_NODE = new StackManipulation.Compound(
         OBJ,
-        invokeMethod(Identifiable.class, "key"),
+        invokeMethod(KeyAware.class, Naming.KEY_AWARE_KEY_NAME),
         UNKNOWN_SIZE,
-        invokeMethod(BindingStreamEventWriter.class, "startMapEntryNode", Identifier.class, int.class));
+        invokeMethod(BindingStreamEventWriter.class, "startMapEntryNode", Key.class, int.class));
 
     // startUnkeyedListItem(UNKNOWN_SIZE)
     private static final StackManipulation START_UNKEYED_LIST_ITEM = new StackManipulation.Compound(
index 660026810a01336c438291ab86498b71cad803bf..af3908d51ae3ec9ed712a08ab97b545bf08f7b82 100644 (file)
@@ -11,11 +11,11 @@ import java.io.IOException;
 import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.OpaqueObject;
 
-//FIXME: Consider moving this to yang.binding.util.* in Be
+// FIXME: Consider moving this to yang.binding.util.* in Be
 abstract class ForwardingBindingStreamEventWriter implements AnydataBindingStreamWriter {
 
     protected abstract AnydataBindingStreamWriter delegate();
@@ -58,19 +58,19 @@ abstract class ForwardingBindingStreamEventWriter implements AnydataBindingStrea
     }
 
     @Override
-    public <T extends DataObject & Identifiable<?>> void startMapNode(final Class<T> mapEntryType,
-            final int childSizeHint) throws IOException {
+    public <T extends DataObject & KeyAware<?>> void startMapNode(final Class<T> mapEntryType, final int childSizeHint)
+            throws IOException {
         delegate().startMapNode(mapEntryType, childSizeHint);
     }
 
     @Override
-    public <T extends DataObject & Identifiable<?>> void startOrderedMapNode(final Class<T> mapEntryType,
+    public <T extends DataObject & KeyAware<?>> void startOrderedMapNode(final Class<T> mapEntryType,
             final int childSizeHint) throws IOException {
         delegate().startOrderedMapNode(mapEntryType, childSizeHint);
     }
 
     @Override
-    public void startMapEntryNode(final Identifier<?> keyValues, final int childSizeHint) throws IOException {
+    public void startMapEntryNode(final Key<?> keyValues, final int childSizeHint) throws IOException {
         delegate().startMapEntryNode(keyValues, childSizeHint);
     }
 
index 008bb31807e97a5015aa54fa408d1f818b0fc4fd..34c8fed782f2c097e5bc3ff8c653660545af6581 100644 (file)
@@ -22,9 +22,9 @@ import java.util.Map;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.util.ImmutableOffsetMap;
 import org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.contract.Naming;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
@@ -34,17 +34,17 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Codec support for extracting the {@link Identifiable#key()} method return from a MapEntryNode.
+ * Codec support for extracting the {@link KeyAware#key()} method return from a MapEntryNode.
  */
 abstract sealed class IdentifiableItemCodec {
     private static final class SingleKey extends IdentifiableItemCodec {
-        private static final MethodType CTOR_TYPE = MethodType.methodType(Identifier.class, Object.class);
+        private static final MethodType CTOR_TYPE = MethodType.methodType(Key.class, Object.class);
 
         private final ValueContext keyContext;
         private final MethodHandle ctor;
         private final QName keyName;
 
-        SingleKey(final ListEffectiveStatement schema, final Class<? extends Identifier<?>> keyClass,
+        SingleKey(final ListEffectiveStatement schema, final Class<? extends Key<?>> keyClass,
                 final Class<?> identifiable, final QName keyName, final ValueContext keyContext) {
             super(schema, keyClass, identifiable);
             this.keyContext = requireNonNull(keyContext);
@@ -53,12 +53,12 @@ abstract sealed class IdentifiableItemCodec {
         }
 
         @Override
-        Identifier<?> deserializeIdentifierImpl(final NodeIdentifierWithPredicates nip) throws Throwable {
-            return (Identifier<?>) ctor.invokeExact(keyContext.deserialize(nip.getValue(keyName)));
+        Key<?> deserializeIdentifierImpl(final NodeIdentifierWithPredicates nip) throws Throwable {
+            return (Key<?>) ctor.invokeExact(keyContext.deserialize(nip.getValue(keyName)));
         }
 
         @Override
-        NodeIdentifierWithPredicates serializeIdentifier(final QName qname, final Identifier<?> key) {
+        NodeIdentifierWithPredicates serializeIdentifier(final QName qname, final Key<?> key) {
             return NodeIdentifierWithPredicates.of(qname, keyName, keyContext.getAndSerialize(key));
         }
     }
@@ -69,13 +69,13 @@ abstract sealed class IdentifiableItemCodec {
         private final ImmutableList<QName> keysInBindingOrder;
         private final MethodHandle ctor;
 
-        MultiKey(final ListEffectiveStatement schema, final Class<? extends Identifier<?>> keyClass,
+        MultiKey(final ListEffectiveStatement schema, final Class<? extends Key<?>> keyClass,
                 final Class<?> identifiable, final Map<QName, ValueContext> keyValueContexts) {
             super(schema, keyClass, identifiable);
 
             final var tmpCtor = getConstructor(keyClass, keyValueContexts.size());
             final var inv = MethodHandles.spreadInvoker(tmpCtor.type(), 0);
-            ctor = inv.asType(inv.type().changeReturnType(Identifier.class)).bindTo(tmpCtor);
+            ctor = inv.asType(inv.type().changeReturnType(Key.class)).bindTo(tmpCtor);
 
             /*
              * We need to re-index to make sure we instantiate nodes in the order in which they are defined. We will
@@ -98,18 +98,18 @@ abstract sealed class IdentifiableItemCodec {
         }
 
         @Override
-        Identifier<?> deserializeIdentifierImpl(final NodeIdentifierWithPredicates nip) throws Throwable {
+        Key<?> deserializeIdentifierImpl(final NodeIdentifierWithPredicates nip) throws Throwable {
             final var bindingValues = new Object[keysInBindingOrder.size()];
             int offset = 0;
             for (var key : keysInBindingOrder) {
                 bindingValues[offset++] = keyValueContexts.get(key).deserialize(nip.getValue(key));
             }
 
-            return (Identifier<?>) ctor.invokeExact(bindingValues);
+            return (Key<?>) ctor.invokeExact(bindingValues);
         }
 
         @Override
-        NodeIdentifierWithPredicates serializeIdentifier(final QName qname, final Identifier<?> key) {
+        NodeIdentifierWithPredicates serializeIdentifier(final QName qname, final Key<?> key) {
             final var values = new Object[keyValueContexts.size()];
             int offset = 0;
             for (var valueCtx : keyValueContexts.values()) {
@@ -125,13 +125,13 @@ abstract sealed class IdentifiableItemCodec {
     private final Class<?> identifiable;
     private final QName qname;
 
-    private IdentifiableItemCodec(final ListEffectiveStatement schema, final Class<? extends Identifier<?>> keyClass,
+    private IdentifiableItemCodec(final ListEffectiveStatement schema, final Class<? extends Key<?>> keyClass,
             final Class<?> identifiable) {
         this.identifiable = requireNonNull(identifiable);
         qname = schema.argument();
     }
 
-    static IdentifiableItemCodec of(final ListEffectiveStatement schema, final Class<? extends Identifier<?>> keyClass,
+    static IdentifiableItemCodec of(final ListEffectiveStatement schema, final Class<? extends Key<?>> keyClass,
             final Class<?> identifiable, final Map<QName, ValueContext> keyValueContexts) {
         return switch (keyValueContexts.size()) {
             case 0 -> throw new IllegalArgumentException(
@@ -146,7 +146,7 @@ abstract sealed class IdentifiableItemCodec {
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
     final @NonNull IdentifiableItem<?, ?> domToBinding(final NodeIdentifierWithPredicates input) {
-        return IdentifiableItem.of((Class) identifiable, (Identifier) deserializeIdentifier(requireNonNull(input)));
+        return IdentifiableItem.of((Class) identifiable, (Key) deserializeIdentifier(requireNonNull(input)));
     }
 
     final @NonNull NodeIdentifierWithPredicates bindingToDom(final IdentifiableItem<?, ?> input) {
@@ -154,7 +154,7 @@ abstract sealed class IdentifiableItemCodec {
     }
 
     @SuppressWarnings("checkstyle:illegalCatch")
-    final @NonNull Identifier<?> deserializeIdentifier(final @NonNull NodeIdentifierWithPredicates input) {
+    final @NonNull Key<?> deserializeIdentifier(final @NonNull NodeIdentifierWithPredicates input) {
         try {
             return deserializeIdentifierImpl(input);
         } catch (Throwable e) {
@@ -164,12 +164,11 @@ abstract sealed class IdentifiableItemCodec {
     }
 
     @SuppressWarnings("checkstyle:illegalThrows")
-    abstract @NonNull Identifier<?> deserializeIdentifierImpl(@NonNull NodeIdentifierWithPredicates nip)
-            throws Throwable;
+    abstract @NonNull Key<?> deserializeIdentifierImpl(@NonNull NodeIdentifierWithPredicates nip) throws Throwable;
 
-    abstract @NonNull NodeIdentifierWithPredicates serializeIdentifier(QName qname, Identifier<?> key);
+    abstract @NonNull NodeIdentifierWithPredicates serializeIdentifier(QName qname, Key<?> key);
 
-    static MethodHandle getConstructor(final Class<? extends Identifier<?>> clazz, final int nrArgs) {
+    static MethodHandle getConstructor(final Class<? extends Key<?>> clazz, final int nrArgs) {
         for (var ctor : clazz.getConstructors()) {
             // Check argument count
             if (ctor.getParameterCount() != nrArgs) {
index 163fb812c840d5fabe710f2ff89530b05a78d636..61dcbe4b3c148f78951f2ff97de4bbd790716b75 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
 import static java.util.Objects.requireNonNull;
-import static org.opendaylight.yangtools.yang.binding.contract.Naming.IDENTIFIABLE_KEY_NAME;
 
 import java.lang.reflect.Method;
 import java.util.List;
@@ -16,18 +15,19 @@ import java.util.Map;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.runtime.api.ListRuntimeType;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.IdentifiableItem;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
+import org.opendaylight.yangtools.yang.binding.contract.Naming;
 import org.opendaylight.yangtools.yang.common.Ordering;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
 
-abstract sealed class KeyedListNodeCodecContext<I extends Identifier<D>, D extends DataObject & Identifiable<I>>
+abstract sealed class KeyedListNodeCodecContext<I extends Key<D>, D extends DataObject & KeyAware<I>>
         extends ListNodeCodecContext<D> {
-    private static final class Ordered<I extends Identifier<D>, D extends DataObject & Identifiable<I>>
+    private static final class Ordered<I extends Key<D>, D extends DataObject & KeyAware<I>>
             extends KeyedListNodeCodecContext<I, D> {
         Ordered(final DataContainerCodecPrototype<ListRuntimeType> prototype, final Method keyMethod,
                 final IdentifiableItemCodec codec) {
@@ -35,7 +35,7 @@ abstract sealed class KeyedListNodeCodecContext<I extends Identifier<D>, D exten
         }
     }
 
-    static final class Unordered<I extends Identifier<D>, D extends DataObject & Identifiable<I>>
+    static final class Unordered<I extends Key<D>, D extends DataObject & KeyAware<I>>
             extends KeyedListNodeCodecContext<I, D> {
         Unordered(final DataContainerCodecPrototype<ListRuntimeType> prototype, final Method keyMethod,
                 final IdentifiableItemCodec codec) {
@@ -61,7 +61,7 @@ abstract sealed class KeyedListNodeCodecContext<I extends Identifier<D>, D exten
         final Class<?> bindingClass = prototype.getBindingClass();
         final Method keyMethod;
         try {
-            keyMethod = bindingClass.getMethod(IDENTIFIABLE_KEY_NAME);
+            keyMethod = bindingClass.getMethod(Naming.KEY_AWARE_KEY_NAME);
         } catch (NoSuchMethodException e) {
             throw new IllegalStateException("Required method not available", e);
         }
@@ -98,11 +98,11 @@ abstract sealed class KeyedListNodeCodecContext<I extends Identifier<D>, D exten
     }
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
-    NodeIdentifierWithPredicates serialize(final Identifier<?> key) {
-        return codec.bindingToDom(IdentifiableItem.of((Class)getBindingClass(), (Identifier)key));
+    NodeIdentifierWithPredicates serialize(final Key<?> key) {
+        return codec.bindingToDom(IdentifiableItem.of((Class)getBindingClass(), (Key)key));
     }
 
-    @NonNull Identifier<?> deserialize(final @NonNull NodeIdentifierWithPredicates arg) {
+    @NonNull Key<?> deserialize(final @NonNull NodeIdentifierWithPredicates arg) {
         return codec.deserializeIdentifier(arg);
     }
 
index e1b7dd64612444a25239b102a458a6a6c1712a65..bd84cc66e329c60b8c47fa86a724fd2540ab97a2 100644 (file)
@@ -23,8 +23,8 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.dom.codec.impl.KeyedListNodeCodecContext.Unordered;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
  * @param <K> key type
  * @param <V> value type
  */
-final class LazyBindingMap<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+final class LazyBindingMap<K extends Key<V>, V extends DataObject & KeyAware<K>>
         extends AbstractMap<K, V> implements Immutable {
     private static final Logger LOG = LoggerFactory.getLogger(LazyBindingMap.class);
     private static final String LAZY_CUTOFF_PROPERTY =
@@ -80,7 +80,7 @@ final class LazyBindingMap<K extends Identifier<V>, V extends DataObject & Ident
         this.mapNode = requireNonNull(mapNode);
     }
 
-    static <K extends Identifier<V>, V extends DataObject & Identifiable<K>> @NonNull Map<K, V> create(
+    static <K extends Key<V>, V extends DataObject & KeyAware<K>> @NonNull Map<K, V> create(
             final Unordered<K, V> codec, final MapNode mapNode, final int size) {
         if (size == 1) {
             // Do not bother with lazy instantiation in case of a singleton
@@ -90,7 +90,7 @@ final class LazyBindingMap<K extends Identifier<V>, V extends DataObject & Ident
         return size > LAZY_CUTOFF ? new LazyBindingMap<>(codec, mapNode) : eagerMap(codec, mapNode, size);
     }
 
-    private static <K extends Identifier<V>, V extends DataObject & Identifiable<K>> @NonNull Map<K, V> eagerMap(
+    private static <K extends Key<V>, V extends DataObject & KeyAware<K>> @NonNull Map<K, V> eagerMap(
             final Unordered<K, V> codec, final MapNode mapNode, final int size) {
         final Builder<K, V> builder = ImmutableMap.builderWithExpectedSize(size);
         for (MapEntryNode node : mapNode.body()) {
@@ -129,9 +129,8 @@ final class LazyBindingMap<K extends Identifier<V>, V extends DataObject & Ident
     @Override
     public boolean containsValue(final Object value) {
         /*
-         * This implementation relies on the relationship specified by Identifiable/Identifier and its use in binding
-         * objects. The key is a wrapper object composed of a subset (or all) properties in the value, i.e. we have
-         * a partial index.
+         * This implementation relies on the relationship specified by KeyAware/Key and its use in binding objects. The
+         * key is a wrapper object composed of a subset (or all) properties in the value, i.e. we have a partial index.
          *
          * Instead of performing an O(N) search, we extract the key from the value, look the for the corresponding
          * mapping. If we find a mapping we check if the mapped value equals the the value being looked up.
@@ -169,7 +168,7 @@ final class LazyBindingMap<K extends Identifier<V>, V extends DataObject & Ident
     }
 
     Optional<V> lookupValue(final @NonNull Object key) {
-        final NodeIdentifierWithPredicates childId = codec.serialize((Identifier<?>) key);
+        final NodeIdentifierWithPredicates childId = codec.serialize((Key<?>) key);
         return mapNode.findChildByArg(childId).map(codec::createBindingProxy);
     }
 
@@ -205,7 +204,7 @@ final class LazyBindingMap<K extends Identifier<V>, V extends DataObject & Ident
         return new UnsupportedOperationException("Modification is not supported");
     }
 
-    abstract static class State<K extends Identifier<V>, V extends DataObject & Identifiable<K>> {
+    abstract static class State<K extends Key<V>, V extends DataObject & KeyAware<K>> {
         abstract boolean containsKey(@NonNull Object key);
 
         abstract V get(@NonNull Object key);
index f41f74451581b37be6a667c1efeccadc7a322e98..f908d5e6af80a333f5011eb8bc77f8f62f23f744 100644 (file)
@@ -23,8 +23,8 @@ import java.util.Map.Entry;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
  * @param <K> key type
  * @param <V> value type
  */
-final class LazyBindingMapIterState<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+final class LazyBindingMapIterState<K extends Key<V>, V extends DataObject & KeyAware<K>>
         extends LazyBindingMap.State<K, V> {
     private static final Logger LOG = LoggerFactory.getLogger(LazyBindingMapIterState.class);
     private static final VarHandle ENTRY_SET;
@@ -131,7 +131,7 @@ final class LazyBindingMapIterState<K extends Identifier<V>, V extends DataObjec
         return (witness = KEY_SET.compareAndExchangeRelease(this, null, ret)) == null ? ret : (KeySet<K, V>) witness;
     }
 
-    private static final class EntrySet<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class EntrySet<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractSet<Entry<K, V>> implements Immutable {
         private final Values<K, V> values;
 
@@ -158,7 +158,7 @@ final class LazyBindingMapIterState<K extends Identifier<V>, V extends DataObjec
         }
     }
 
-    private static final class KeySet<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class KeySet<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractSet<K> implements Immutable {
         private final Values<K, V> values;
 
@@ -173,7 +173,7 @@ final class LazyBindingMapIterState<K extends Identifier<V>, V extends DataObjec
 
         @Override
         public Iterator<K> iterator() {
-            return Iterators.transform(values.iterator(), value -> value.key());
+            return Iterators.transform(values.iterator(), KeyAware::key);
         }
 
         @Override
@@ -188,7 +188,7 @@ final class LazyBindingMapIterState<K extends Identifier<V>, V extends DataObjec
      * the array to hold all values upfront and populate it with MapEntry nodes. That allows us to perform lock-free
      * access, as we just end up CASing MapEntryNodes with their Binding replacements.
      */
-    private static final class Values<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class Values<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractSet<V> implements Immutable {
         private final LazyBindingMap<K, V> map;
         private final Object[] objects;
index 570bf63ef336efac66720cfe6d885df679b52070..6ef59de371a28811ca7380d39b3bc4a192c9b28d 100644 (file)
@@ -25,8 +25,8 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 
 /**
@@ -36,7 +36,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
  * @param <K> key type
  * @param <V> value type
  */
-final class LazyBindingMapLookupState<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+final class LazyBindingMapLookupState<K extends Key<V>, V extends DataObject & KeyAware<K>>
         extends LazyBindingMap.State<K, V> {
     private static final VarHandle VALUES;
 
@@ -124,7 +124,7 @@ final class LazyBindingMapLookupState<K extends Identifier<V>, V extends DataObj
         return (witness = VALUES.compareAndExchangeRelease(this, null, ret)) == null ? ret : (Values<K, V>) witness;
     }
 
-    private static final class EntrySet<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class EntrySet<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractSet<Entry<K, V>> implements Immutable {
         private final Values<K, V> values;
 
@@ -158,7 +158,7 @@ final class LazyBindingMapLookupState<K extends Identifier<V>, V extends DataObj
         }
     }
 
-    private static final class KeySet<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class KeySet<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractSet<K> implements Immutable {
         private final Values<K, V> values;
 
@@ -190,7 +190,7 @@ final class LazyBindingMapLookupState<K extends Identifier<V>, V extends DataObj
         }
     }
 
-    private static final class Values<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class Values<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractSet<V> implements Immutable {
         private final LazyBindingMapLookupState<K, V> state;
 
@@ -244,7 +244,7 @@ final class LazyBindingMapLookupState<K extends Identifier<V>, V extends DataObj
             final Object[] local = objects;
             // When we have null objects it means we have everyone in state.objects
             return local == null ? Iterators.unmodifiableIterator(state.objects.keySet().iterator())
-                    : Iterators.transform(new ValuesIter<>(this, local),  value -> value.key());
+                    : Iterators.transform(new ValuesIter<>(this, local), KeyAware::key);
         }
 
         LazyBindingMap<K, V> map() {
@@ -257,7 +257,7 @@ final class LazyBindingMapLookupState<K extends Identifier<V>, V extends DataObj
         }
     }
 
-    private static final class ValuesIter<K extends Identifier<V>, V extends DataObject & Identifiable<K>>
+    private static final class ValuesIter<K extends Key<V>, V extends DataObject & KeyAware<K>>
             extends AbstractIterator<V> {
         private final Values<K, V> values;
         private final Object[] objects;
index 2bb38c48e8d7cba029a4ab95b0bde3c01f8148cc..8050fadf344a33dab03d1b8060def0a50fc4243a 100644 (file)
@@ -33,8 +33,8 @@ import org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal45.base.norev.con
 import org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal45.base.norev.cont.cont.choice.ContBase;
 import org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal45.base.norev.grp.GrpCont;
 import org.opendaylight.yang.gen.v1.urn.test.opendaylight.mdsal45.base.norev.root.RootBase;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.Key;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
@@ -76,7 +76,7 @@ public class InstanceIdentifierSerializeDeserializeTest extends AbstractBindingC
         assertEquals(TopLevelList.class, instanceIdentifier.getTargetType());
         assertFalse(instanceIdentifier.isWildcarded());
         assertTrue(last instanceof InstanceIdentifier.IdentifiableItem);
-        final Identifier<?> key = ((InstanceIdentifier.IdentifiableItem<?, ?>) last).getKey();
+        final Key<?> key = ((InstanceIdentifier.IdentifiableItem<?, ?>) last).getKey();
         assertEquals(TopLevelListKey.class, key.getClass());
         assertEquals(TOP_LEVEL_LIST_KEY_VALUE, ((TopLevelListKey)key).getName());
     }
index 9adb4b572a5bacc0abbb7792c6c407bd11b75006..6de3925845f92e5d5ef092babc5742e26c1b8aa5 100644 (file)
@@ -21,7 +21,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.te
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.Top;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.two.level.list.TopLevelList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.two.level.list.TopLevelListKey;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -66,7 +65,7 @@ public class InstanceIdentifierTest extends AbstractBindingCodecTest {
                 QName.create(OspfStatLsdbBrief.QNAME, "LsId"), 3,
                 QName.create(OspfStatLsdbBrief.QNAME, "AdvRtr"), "foo"))));
         assertTrue(result instanceof KeyedInstanceIdentifier);
-        final Identifier<?> key = ((KeyedInstanceIdentifier<?, ?>) result).getKey();
+        final var key = ((KeyedInstanceIdentifier<?, ?>) result).getKey();
         assertEquals(new OspfStatLsdbBriefKey("foo", 1, 3, Uint8.valueOf(2)), key);
     }
 }
index 548798b8516d47f2a5a184481784fb80263b1782..9109b0d5b2392d37854bb1dbb9b6fe2267394ed4 100644 (file)
@@ -19,7 +19,6 @@ import static org.mockito.Mockito.mock;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -33,8 +32,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.te
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.two.level.list.TopLevelListKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.two.level.list.top.level.list.NestedListBuilder;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 public class LazyBindingMapTest extends AbstractBindingCodecTest {
     private static Top TOP;
@@ -116,8 +115,8 @@ public class LazyBindingMapTest extends AbstractBindingCodecTest {
     }
 
     private static void assertSameIteratorObjects(final Collection<?> collection) {
-        final Iterator<?> iter1 = collection.iterator();
-        final Iterator<?> iter2 = collection.iterator();
+        final var iter1 = collection.iterator();
+        final var iter2 = collection.iterator();
 
         while (iter1.hasNext()) {
             // Both iterators should return same values
@@ -197,7 +196,7 @@ public class LazyBindingMapTest extends AbstractBindingCodecTest {
     public void testLookupContainsKeyThrows() {
         final Map<TopLevelListKey, TopLevelList> list = prepareData().getTopLevelList();
         assertThrows(NullPointerException.class, () -> list.containsKey(null));
-        assertThrows(ClassCastException.class, () -> list.containsKey(mock(Identifiable.class)));
+        assertThrows(ClassCastException.class, () -> list.containsKey(mock(KeyAware.class)));
     }
 
     @Test
index 3434c46bd0e1055fea02530238ae05af599858d7..b932b8746802d48b285624050510c5c39d9a4fce 100644 (file)
@@ -50,7 +50,7 @@ final class KeyGenerator extends AbstractExplicitGenerator<KeyEffectiveStatement
     GeneratedTransferObject createTypeImpl(final TypeBuilderFactory builderFactory) {
         final var builder = builderFactory.newGeneratedTOBuilder(typeName());
 
-        builder.addImplementsType(BindingTypes.identifier(Type.of(listGen.typeName())));
+        builder.addImplementsType(BindingTypes.key(Type.of(listGen.typeName())));
 
         final var leafNames = statement().argument();
         for (var listChild : listGen) {
index d6e9eaf7ddeadd5b977c2d559a1b7ffbc1b3bcb7..9ddc4da25ee6b7ea0bed3d8e0709692be308583a 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.mdsal.binding.generator.impl.reactor;
 
-import static org.opendaylight.mdsal.binding.model.ri.BindingTypes.identifiable;
+import static org.opendaylight.mdsal.binding.model.ri.BindingTypes.keyAware;
 
 import java.util.List;
 import org.eclipse.jdt.annotation.Nullable;
@@ -70,8 +70,8 @@ final class ListGenerator extends CompositeSchemaTreeGenerator<ListEffectiveStat
         if (keyGen != null) {
             // Add yang.binding.Identifiable and its key() method
             final GeneratedType keyType = keyGen.getGeneratedType(builderFactory);
-            builder.addImplementsType(identifiable(keyType));
-            builder.addMethod(Naming.IDENTIFIABLE_KEY_NAME)
+            builder.addImplementsType(keyAware(keyType));
+            builder.addMethod(Naming.KEY_AWARE_KEY_NAME)
                 .setReturnType(keyType)
                 .addAnnotation(OVERRIDE_ANNOTATION);
         }
index 2e67a63a16b72d17dc178a65a5935d5cabcab2e3..e05cf52d86865032b6dd74e7bcc03771c37bb649 100644 (file)
@@ -60,7 +60,7 @@ public class AugmentRelativeXPathTest {
 
                 MethodSignature getIfcKeyMethod = null;
                 for (final MethodSignature method : gtInterfaceMethods) {
-                    if (Naming.IDENTIFIABLE_KEY_NAME.equals(method.getName())) {
+                    if (Naming.KEY_AWARE_KEY_NAME.equals(method.getName())) {
                         getIfcKeyMethod = method;
                         break;
                     }
@@ -80,7 +80,7 @@ public class AugmentRelativeXPathTest {
 
                 MethodSignature getTunnelKeyMethod = null;
                 for (MethodSignature method : tunnelMethods) {
-                    if (Naming.IDENTIFIABLE_KEY_NAME.equals(method.getName())) {
+                    if (Naming.KEY_AWARE_KEY_NAME.equals(method.getName())) {
                         getTunnelKeyMethod = method;
                         break;
                     }
index 61274cb04f865b83ad8f363a94034ac9cf2812c7..0d9996a43f22dbdb6a42cf5950de44e9ad2e37a2 100644 (file)
@@ -68,7 +68,7 @@ public class AugmentedTypeTest {
         assertNotNull("gtInterfaceMethods is null", gtInterfaceMethods);
         MethodSignature getIfcKeyMethod = null;
         for (final MethodSignature method : gtInterfaceMethods) {
-            if (Naming.IDENTIFIABLE_KEY_NAME.equals(method.getName())) {
+            if (Naming.KEY_AWARE_KEY_NAME.equals(method.getName())) {
                 getIfcKeyMethod = method;
                 break;
             }
@@ -109,7 +109,7 @@ public class AugmentedTypeTest {
         assertNotNull("Tunnel methods are null", tunnelMethods);
         MethodSignature getTunnelKeyMethod = null;
         for (MethodSignature method : tunnelMethods) {
-            if (Naming.IDENTIFIABLE_KEY_NAME.equals(method.getName())) {
+            if (Naming.KEY_AWARE_KEY_NAME.equals(method.getName())) {
                 getTunnelKeyMethod = method;
                 break;
             }
index 3d9bbd01f99bcc60dc891931203753226dde13ab..5fa13b23b91d426a055b6f2075bfb3eb8fad4ef2 100644 (file)
@@ -113,7 +113,7 @@ public class GeneratedTypesLeafrefTest {
         MethodSignature getHigherLayerIf = null;
         for (final MethodSignature method : gtIfcMethods) {
             switch (method.getName()) {
-                case Naming.IDENTIFIABLE_KEY_NAME:
+                case Naming.KEY_AWARE_KEY_NAME:
                     getIfcKey = method;
                     break;
                 case "getHigherLayerIf":
@@ -184,7 +184,7 @@ public class GeneratedTypesLeafrefTest {
         assertNotNull(gtTunnelMethods);
         MethodSignature getTunnelKey = null;
         for (MethodSignature method : gtTunnelMethods) {
-            if (Naming.IDENTIFIABLE_KEY_NAME.equals(method.getName())) {
+            if (Naming.KEY_AWARE_KEY_NAME.equals(method.getName())) {
                 getTunnelKey = method;
             }
         }
index b24264319a9ecffb653cdfba892f20c51205ea1a..2602285d28045ce743e837ec3993b7758edc6e4e 100644 (file)
@@ -230,7 +230,7 @@ public class GeneratedTypesTest {
                     final List<MethodSignature> methods = genType.getMethodDefinitions();
                     for (final MethodSignature method : methods) {
                         switch (method.getName()) {
-                            case Naming.IDENTIFIABLE_KEY_NAME:
+                            case Naming.KEY_AWARE_KEY_NAME:
                                 getSimpleListKeyMethodCount++;
                                 getSimpleListKeyMethodReturnTypeName = method.getReturnType().getName();
                                 break;
index 96fc577d9dde44c5936ddcb57e39e7bc6654bfee..8ff86fee8b109820a67fe85c4c2bf4cf1dd3362e 100644 (file)
@@ -87,12 +87,12 @@ abstract class AbstractBuilderTemplate extends BaseTemplate {
             @«OVERRIDE.importedName»
             Â«ELSE»
             /**
-             * Return current value associated with the property corresponding to {@link Â«targetType.importedName»#«Naming.IDENTIFIABLE_KEY_NAME»()}.
+             * Return current value associated with the property corresponding to {@link Â«targetType.importedName»#«Naming.KEY_AWARE_KEY_NAME»()}.
              *
              * @return current value
              */
             Â«ENDIF»
-            public Â«keyType.importedName» Â«Naming.IDENTIFIABLE_KEY_NAME»() {
+            public Â«keyType.importedName» Â«Naming.KEY_AWARE_KEY_NAME»() {
                 return key;
             }
 
@@ -118,7 +118,7 @@ abstract class AbstractBuilderTemplate extends BaseTemplate {
             Â«IF augmentType !== null»
                 Â«generateCopyAugmentation(implType)»
             Â«ENDIF»
-            Â«IF keyType !== null && implementsIfc(targetType, BindingTypes.identifiable(targetType))»
+            Â«IF keyType !== null && implementsIfc(targetType, BindingTypes.keyAware(targetType))»
                 Â«val keyProps = new ArrayList((keyType as GeneratedTransferObject).properties)»
                 Â«keyProps.sort(KEY_PROPS_COMPARATOR)»
                 Â«val allProps = new ArrayList(properties)»
index 8049fa29706b08b9f475f98a9e448d7be88c312d..1ce36f92a7ce84696020bbe733d14c5f821d581c 100644 (file)
@@ -82,7 +82,7 @@ public final class BuilderGenerator implements CodeGenerator {
 
     private static Type getKey(final GeneratedType type) {
         for (MethodSignature m : type.getMethodDefinitions()) {
-            if (Naming.IDENTIFIABLE_KEY_NAME.equals(m.getName())) {
+            if (Naming.KEY_AWARE_KEY_NAME.equals(m.getName())) {
                 return m.getReturnType();
             }
         }
index 25968ac9b135eebf9e7058b7137bfa9e43dd5060..512350ad180bedee1da70dadb031634342475cc8 100644 (file)
@@ -14,7 +14,7 @@ import static org.opendaylight.yangtools.yang.binding.contract.Naming.BINDING_EQ
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.BINDING_HASHCODE_NAME
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.BINDING_TO_STRING_NAME
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.BUILDER_SUFFIX
-import static org.opendaylight.yangtools.yang.binding.contract.Naming.IDENTIFIABLE_KEY_NAME
+import static org.opendaylight.yangtools.yang.binding.contract.Naming.KEY_AWARE_KEY_NAME
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.NONNULL_PREFIX
 
 import java.util.Collection
@@ -70,7 +70,7 @@ class BuilderImplTemplate extends AbstractBuilderTemplate {
     def private generateGetters() '''
         Â«IF keyType !== null»
             @«OVERRIDE.importedName»
-            public Â«keyType.importedName» Â«IDENTIFIABLE_KEY_NAME»() {
+            public Â«keyType.importedName» Â«KEY_AWARE_KEY_NAME»() {
                 return key;
             }
 
@@ -203,8 +203,8 @@ class BuilderImplTemplate extends AbstractBuilderTemplate {
     '''
 
     override protected generateCopyKeys(List<GeneratedProperty> keyProps) '''
-        if (base.«IDENTIFIABLE_KEY_NAME»() != null) {
-            this.key = base.«IDENTIFIABLE_KEY_NAME»();
+        if (base.«KEY_AWARE_KEY_NAME»() != null) {
+            this.key = base.«KEY_AWARE_KEY_NAME»();
         } else {
             this.key = new Â«keyType.importedName»(«FOR keyProp : keyProps SEPARATOR ", "»base.«keyProp.getterMethodName»()«ENDFOR»);
         }
index d7c422e33a4986b5a29682a6ce6dc7083ffec28d..376fe1266366be078cd28d489eb3747edbc5c263 100644 (file)
@@ -13,7 +13,7 @@ import static org.opendaylight.mdsal.binding.model.ri.BindingTypes.DATA_OBJECT
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.AUGMENTABLE_AUGMENTATION_NAME
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.AUGMENTATION_FIELD
 import static org.opendaylight.yangtools.yang.binding.contract.Naming.BINDING_CONTRACT_IMPLEMENTED_INTERFACE_NAME
-import static org.opendaylight.yangtools.yang.binding.contract.Naming.IDENTIFIABLE_KEY_NAME
+import static org.opendaylight.yangtools.yang.binding.contract.Naming.KEY_AWARE_KEY_NAME
 
 import com.google.common.collect.ImmutableList
 import com.google.common.collect.ImmutableSet
@@ -472,7 +472,7 @@ class BuilderTemplate extends AbstractBuilderTemplate {
     def private generateSetters() '''
         Â«IF keyType !== null»
             /**
-             * Set the key value corresponding to {@link Â«targetType.importedName»#«IDENTIFIABLE_KEY_NAME»()} to the specified
+             * Set the key value corresponding to {@link Â«targetType.importedName»#«KEY_AWARE_KEY_NAME»()} to the specified
              * value.
              *
              * @param key desired value
@@ -589,7 +589,7 @@ class BuilderTemplate extends AbstractBuilderTemplate {
     '''
 
     override protected generateCopyKeys(List<GeneratedProperty> keyProps) '''
-        this.key = base.«IDENTIFIABLE_KEY_NAME»();
+        this.key = base.«KEY_AWARE_KEY_NAME»();
         Â«FOR field : keyProps»
             this.«field.fieldName» = base.«field.getterMethodName»();
         Â«ENDFOR»
index 14d92906eff9b2348098d34784d96527fa4d3a3e..7f3c8bcb9207d5b5b5b7137f1f124e80b24b125f 100644 (file)
@@ -75,7 +75,7 @@ final class ListKeyTemplate extends ClassTemplate {
     private static def Type findListType(GeneratedType type) {
         for (Type implType : type.getImplements()) {
             if (implType instanceof ParameterizedType) {
-                val identifiable = BindingTypes.extractIdentifiable(implType)
+                val identifiable = BindingTypes.extractKeyType(implType)
                 if (identifiable !== null) {
                     return identifiable
                 }
index 53ce2472609e67828a4f7c76927a454a3d320219..2cadd4f2ad29c30de0bed1d33565ff8f0f063815 100644 (file)
@@ -132,7 +132,7 @@ public class CompilationTest extends BaseCompilationTest {
         // Test serialVersionUID generation
         final Field suid = CompilationTestUtils.assertContainsField(linksKeyClass, "serialVersionUID", Long.TYPE);
         suid.setAccessible(true);
-        assertEquals(-8829501012356283881L, suid.getLong(null));
+        assertEquals(-8290985055387641395L, suid.getLong(null));
 
         CompilationTestUtils.cleanUp(sourcesOutputDir, compiledOutputDir);
     }
index dbd9c5d2ef22d4fdbe26384e58bd9c2ca3f0fa6f..606bd9a0347adb41c2095daaa909e51013798af0 100644 (file)
@@ -31,10 +31,10 @@ import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.DataRoot;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceNotification;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.KeyedListAction;
 import org.opendaylight.yangtools.yang.binding.KeyedListNotification;
@@ -83,9 +83,9 @@ public final class BindingTypes {
     @VisibleForTesting
     static final ConcreteType AUGMENTATION = typeForClass(Augmentation.class);
     @VisibleForTesting
-    static final ConcreteType IDENTIFIABLE = typeForClass(Identifiable.class);
+    static final ConcreteType KEY_AWARE = typeForClass(KeyAware.class);
     @VisibleForTesting
-    static final ConcreteType IDENTIFIER = typeForClass(Identifier.class);
+    static final ConcreteType KEY = typeForClass(Key.class);
 
     private static final ConcreteType ACTION = typeForClass(Action.class);
     private static final ConcreteType CHILD_OF = typeForClass(ChildOf.class);
@@ -214,25 +214,25 @@ public final class BindingTypes {
     }
 
     /**
-     * Type specializing {@link Identifier} for a particular type.
+     * Type specializing {@link Key} for a particular type.
      *
      * @param type Type for which to specialize
-     * @return A parameterized type corresponding to {@code Identifier<Type>}
+     * @return A parameterized type corresponding to {@code Key<Type>}
      * @throws NullPointerException if {@code type} is {@code null}
      */
-    public static ParameterizedType identifier(final Type type) {
-        return parameterizedTypeFor(IDENTIFIER, type);
+    public static ParameterizedType key(final Type type) {
+        return parameterizedTypeFor(KEY, type);
     }
 
     /**
-     * Type specializing {@link Identifiable} for a particular type.
+     * Type specializing {@link KeyAware} for a particular type.
      *
      * @param type Type for which to specialize
-     * @return A parameterized type corresponding to {@code Identifiable<Type>}
+     * @return A parameterized type corresponding to {@code KeyAware<Type>}
      * @throws NullPointerException if {@code type} is {@code null}
      */
-    public static ParameterizedType identifiable(final Type type) {
-        return parameterizedTypeFor(IDENTIFIABLE, type);
+    public static ParameterizedType keyAware(final Type type) {
+        return parameterizedTypeFor(KEY_AWARE, type);
     }
 
     /**
@@ -386,15 +386,15 @@ public final class BindingTypes {
     }
 
     /**
-     * Return the {@link Identifiable} type a parameterized {@link Identifier} type references.
+     * Return the {@link KeyAware} type a parameterized {@link Key} type references.
      *
      * @param type Parameterized type
-     * @return Identifiable target, or null if {@code type} does not match the result of {@link #identifier(Type)}
+     * @return Identifiable target, or null if {@code type} does not match the result of {@link #key(Type)}
      * @throws NullPointerException if {@code type} is {@code null}
      */
     @Beta
-    public static @Nullable Type extractIdentifiable(final ParameterizedType type) {
-        if (IDENTIFIER.equals(type.getRawType())) {
+    public static @Nullable Type extractKeyType(final ParameterizedType type) {
+        if (KEY.equals(type.getRawType())) {
             final var args = type.getActualTypeArguments();
             if (args.length == 1) {
                 final var arg = args[0];
index 761861adbca00d88e42d4d8ca6d9fb5b9810ca7b..6b8bbbeb156bc4e2ac4265fff8032643e8cc744b 100644 (file)
@@ -20,9 +20,9 @@ import org.opendaylight.yangtools.yang.binding.Augmentation;
 import org.opendaylight.yangtools.yang.binding.BaseIdentity;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.DataRoot;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.Notification;
 import org.opendaylight.yangtools.yang.binding.NotificationListener;
 import org.opendaylight.yangtools.yang.binding.RpcService;
@@ -35,8 +35,8 @@ public class BindingTypesTest {
         assertEquals("BASE_IDENTITY", typeForClass(BaseIdentity.class), BindingTypes.BASE_IDENTITY);
         assertEquals("DATA_OBJECT", typeForClass(DataObject.class), BindingTypes.DATA_OBJECT);
         assertEquals("DATA_ROOT", typeForClass(DataRoot.class), BindingTypes.DATA_ROOT);
-        assertEquals("IDENTIFIABLE", typeForClass(Identifiable.class), BindingTypes.IDENTIFIABLE);
-        assertEquals("IDENTIFIER", typeForClass(Identifier.class), BindingTypes.IDENTIFIER);
+        assertEquals("KEY_AWARE", typeForClass(KeyAware.class), BindingTypes.KEY_AWARE);
+        assertEquals("KEY", typeForClass(Key.class), BindingTypes.KEY);
         assertEquals("INSTANCE_IDENTIFIER", typeForClass(InstanceIdentifier.class), BindingTypes.INSTANCE_IDENTIFIER);
         assertEquals("NOTIFICATION_LISTENER", typeForClass(NotificationListener.class),
             BindingTypes.NOTIFICATION_LISTENER);
index b0a6d908a6fb479da53f9d67d5351a2175716464..4e7e716712dafb48d7705690cf9cd1e74e6e811f 100644 (file)
@@ -245,7 +245,7 @@ public class InstanceIdentifier<T extends DataObject>
      * @return key associated with the component, or null if the component type
      *         is not present.
      */
-    public final <N extends Identifiable<K> & DataObject, K extends Identifier<N>> @Nullable K firstKeyOf(
+    public final <N extends KeyAware<K> & DataObject, K extends Key<N>> @Nullable K firstKeyOf(
             final Class<@NonNull N> listItem) {
         for (final PathArgument i : pathArguments) {
             if (listItem.equals(i.getType())) {
@@ -359,7 +359,7 @@ public class InstanceIdentifier<T extends DataObject>
      * @throws NullPointerException if any argument is null
      */
     @SuppressWarnings("unchecked")
-    public final <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>>
+    public final <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>>
             @NonNull KeyedInstanceIdentifier<N, K> child(final Class<@NonNull N> listItem, final K listKey) {
         return (KeyedInstanceIdentifier<N, K>) childIdentifier(IdentifiableItem.of(listItem, listKey));
     }
@@ -396,8 +396,8 @@ public class InstanceIdentifier<T extends DataObject>
      */
     // FIXME: add a proper caller
     @SuppressWarnings("unchecked")
-    public final <C extends ChoiceIn<? super T> & DataObject, K extends Identifier<N>,
-        N extends Identifiable<K> & ChildOf<? super C>> @NonNull KeyedInstanceIdentifier<N, K> child(
+    public final <C extends ChoiceIn<? super T> & DataObject, K extends Key<N>,
+        N extends KeyAware<K> & ChildOf<? super C>> @NonNull KeyedInstanceIdentifier<N, K> child(
                 final Class<@NonNull C> caze, final Class<@NonNull N> listItem, final K listKey) {
         return (KeyedInstanceIdentifier<N, K>) childIdentifier(IdentifiableItem.of(caze, listItem, listKey));
     }
@@ -470,8 +470,8 @@ public class InstanceIdentifier<T extends DataObject>
      * @return A new {@link Builder}
      * @throws NullPointerException if any argument is null
      */
-    public static <N extends Identifiable<K> & ChildOf<? extends DataRoot>,
-            K extends Identifier<N>> @NonNull KeyedBuilder<N, K> builder(final Class<N> listItem,
+    public static <N extends KeyAware<K> & ChildOf<? extends DataRoot>,
+            K extends Key<N>> @NonNull KeyedBuilder<N, K> builder(final Class<N> listItem,
                     final K listKey) {
         return new KeyedBuilder<>(IdentifiableItem.of(listItem, listKey));
     }
@@ -490,7 +490,7 @@ public class InstanceIdentifier<T extends DataObject>
      * @throws NullPointerException if any argument is null
      */
     public static <C extends ChoiceIn<? extends DataRoot> & DataObject,
-            N extends Identifiable<K> & ChildOf<? super C>, K extends Identifier<N>>
+            N extends KeyAware<K> & ChildOf<? super C>, K extends Key<N>>
             @NonNull KeyedBuilder<N, K> builder(final Class<C> caze, final Class<N> listItem,
                     final K listKey) {
         return new KeyedBuilder<>(IdentifiableItem.of(caze, listItem, listKey));
@@ -510,8 +510,8 @@ public class InstanceIdentifier<T extends DataObject>
         return new RegularBuilder<>(Item.of(caze, container));
     }
 
-    public static <R extends DataRoot & DataObject, N extends Identifiable<K> & ChildOf<? super R>,
-            K extends Identifier<N>>
+    public static <R extends DataRoot & DataObject, N extends KeyAware<K> & ChildOf<? super R>,
+            K extends Key<N>>
             @NonNull KeyedBuilder<N, K> builderOfInherited(final Class<R> root,
                 final Class<N> listItem, final K listKey) {
         // FIXME: we are losing root identity, hence namespaces may not work correctly
@@ -519,7 +519,7 @@ public class InstanceIdentifier<T extends DataObject>
     }
 
     public static <R extends DataRoot & DataObject, C extends ChoiceIn<? super R> & DataObject,
-            N extends Identifiable<K> & ChildOf<? super C>, K extends Identifier<N>>
+            N extends KeyAware<K> & ChildOf<? super C>, K extends Key<N>>
             @NonNull KeyedBuilder<N, K> builderOfInherited(final Class<R> root,
                 final Class<C> caze, final Class<N> listItem, final K listKey) {
         // FIXME: we are losing root identity, hence namespaces may not work correctly
@@ -552,7 +552,7 @@ public class InstanceIdentifier<T extends DataObject>
 
             hashBuilder.addArgument(arg);
 
-            if (Identifiable.class.isAssignableFrom(type) && !(arg instanceof IdentifiableItem)) {
+            if (KeyAware.class.isAssignableFrom(type) && !(arg instanceof IdentifiableItem)) {
                 wildcard = true;
             }
         } while (it.hasNext());
@@ -612,7 +612,7 @@ public class InstanceIdentifier<T extends DataObject>
      * @throws NullPointerException if id is null.
      */
     // FIXME: reconsider naming and design of this method
-    public static <N extends Identifiable<K> & DataObject, K extends Identifier<N>> K keyOf(
+    public static <N extends KeyAware<K> & DataObject, K extends Key<N>> K keyOf(
             final InstanceIdentifier<N> id) {
         requireNonNull(id);
         checkArgument(id instanceof KeyedInstanceIdentifier, "%s does not have a key", id);
@@ -630,7 +630,7 @@ public class InstanceIdentifier<T extends DataObject>
         }
 
         final var type = arg.getType();
-        return new InstanceIdentifier(type, pathArguments, wildcarded || Identifiable.class.isAssignableFrom(type),
+        return new InstanceIdentifier(type, pathArguments, wildcarded || KeyAware.class.isAssignableFrom(type),
             hash);
     }
 
@@ -762,7 +762,7 @@ public class InstanceIdentifier<T extends DataObject>
      * @param <I> An object that is identifiable by an identifier
      * @param <T> The identifier of the object
      */
-    public static class IdentifiableItem<I extends Identifiable<T> & DataObject, T extends Identifier<I>>
+    public static class IdentifiableItem<I extends KeyAware<T> & DataObject, T extends Key<I>>
             extends AbstractPathArgument<I> {
         @Serial
         private static final long serialVersionUID = 1L;
@@ -784,7 +784,7 @@ public class InstanceIdentifier<T extends DataObject>
          * @return An IdentifiableItem
          * @throws NullPointerException if any argument is null.
          */
-        public static <T extends Identifiable<I> & DataObject, I extends Identifier<T>>
+        public static <T extends KeyAware<I> & DataObject, I extends Key<T>>
                 @NonNull IdentifiableItem<T, I> of(final Class<T> type, final I key) {
             return new IdentifiableItem<>(type, key);
         }
@@ -801,8 +801,8 @@ public class InstanceIdentifier<T extends DataObject>
          * @return A new PathArgument
          * @throws NullPointerException if any argument is null.
          */
-        public static <C extends ChoiceIn<?> & DataObject, T extends ChildOf<? super C> & Identifiable<I>,
-                I extends Identifier<T>> @NonNull IdentifiableItem<T, I> of(final Class<C> caseType,
+        public static <C extends ChoiceIn<?> & DataObject, T extends ChildOf<? super C> & KeyAware<I>,
+                I extends Key<T>> @NonNull IdentifiableItem<T, I> of(final Class<C> caseType,
                         final Class<T> type, final I key) {
             return new CaseIdentifiableItem<>(caseType, type, key);
         }
@@ -842,7 +842,7 @@ public class InstanceIdentifier<T extends DataObject>
     }
 
     private static final class CaseIdentifiableItem<C extends ChoiceIn<?> & DataObject,
-            T extends ChildOf<? super C> & Identifiable<K>, K extends Identifier<T>> extends IdentifiableItem<T, K> {
+            T extends ChildOf<? super C> & KeyAware<K>, K extends Key<T>> extends IdentifiableItem<T, K> {
         @Serial
         private static final long serialVersionUID = 1L;
 
@@ -931,7 +931,7 @@ public class InstanceIdentifier<T extends DataObject>
          * @throws NullPointerException if {@code container} is null
          */
         public final <N extends ChildOf<? super T>> Builder<N> child(final Class<N> container) {
-            return append(Item.of(container), Identifiable.class.isAssignableFrom(container));
+            return append(Item.of(container), KeyAware.class.isAssignableFrom(container));
         }
 
         /**
@@ -948,7 +948,7 @@ public class InstanceIdentifier<T extends DataObject>
          */
         public final <C extends ChoiceIn<? super T> & DataObject, N extends ChildOf<? super C>> Builder<N> child(
                 final Class<C> caze, final Class<N> container) {
-            return append(Item.of(caze, container), Identifiable.class.isAssignableFrom(container));
+            return append(Item.of(caze, container), KeyAware.class.isAssignableFrom(container));
         }
 
         /**
@@ -963,7 +963,7 @@ public class InstanceIdentifier<T extends DataObject>
          * @return this builder
          * @throws NullPointerException if any argument is null
          */
-        public final <N extends Identifiable<K> & ChildOf<? super T>, K extends Identifier<N>> KeyedBuilder<N, K> child(
+        public final <N extends KeyAware<K> & ChildOf<? super T>, K extends Key<N>> KeyedBuilder<N, K> child(
                 final Class<@NonNull N> listItem, final K listKey) {
             return append(IdentifiableItem.of(listItem, listKey));
         }
@@ -982,8 +982,8 @@ public class InstanceIdentifier<T extends DataObject>
          * @return this builder
          * @throws NullPointerException if any argument is null
          */
-        public final <C extends ChoiceIn<? super T> & DataObject, K extends Identifier<N>,
-                N extends Identifiable<K> & ChildOf<? super C>> KeyedBuilder<N, K> child(final Class<C> caze,
+        public final <C extends ChoiceIn<? super T> & DataObject, K extends Key<N>,
+                N extends KeyAware<K> & ChildOf<? super C>> KeyedBuilder<N, K> child(final Class<C> caze,
                     final Class<N> listItem, final K listKey) {
             return append(IdentifiableItem.of(caze, listItem, listKey));
         }
@@ -1020,11 +1020,11 @@ public class InstanceIdentifier<T extends DataObject>
 
         abstract <X extends DataObject> @NonNull RegularBuilder<X> append(Item<X> item, boolean isWildcard);
 
-        abstract <X extends DataObject & Identifiable<Y>, Y extends Identifier<X>>
+        abstract <X extends DataObject & KeyAware<Y>, Y extends Key<X>>
             @NonNull KeyedBuilder<X, Y> append(IdentifiableItem<X, Y> item);
     }
 
-    public static final class KeyedBuilder<T extends DataObject & Identifiable<K>, K extends Identifier<T>>
+    public static final class KeyedBuilder<T extends DataObject & KeyAware<K>, K extends Key<T>>
             extends Builder<T> {
         private @NonNull IdentifiableItem<T, K> lastItem;
 
@@ -1061,7 +1061,7 @@ public class InstanceIdentifier<T extends DataObject>
 
         @Override
         @SuppressWarnings({ "rawtypes", "unchecked" })
-        <X extends DataObject & Identifiable<Y>, Y extends Identifier<X>> KeyedBuilder<X, Y> append(
+        <X extends DataObject & KeyAware<Y>, Y extends Key<X>> KeyedBuilder<X, Y> append(
                 final IdentifiableItem<X, Y> item) {
             appendItem(item, false);
             lastItem = (IdentifiableItem) item;
@@ -1073,7 +1073,7 @@ public class InstanceIdentifier<T extends DataObject>
         private @NonNull Class<T> type;
 
         RegularBuilder(final Item<T> item) {
-            super(item, Identifiable.class.isAssignableFrom(item.getType()));
+            super(item, KeyAware.class.isAssignableFrom(item.getType()));
             type = item.getType();
         }
 
@@ -1101,7 +1101,7 @@ public class InstanceIdentifier<T extends DataObject>
         }
 
         @Override
-        <X extends DataObject & Identifiable<Y>, Y extends Identifier<X>> KeyedBuilder<X, Y> append(
+        <X extends DataObject & KeyAware<Y>, Y extends Key<X>> KeyedBuilder<X, Y> append(
                 final IdentifiableItem<X, Y> item) {
             return new KeyedBuilder<>(this, item);
         }
similarity index 61%
rename from binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Identifier.java
rename to binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Key.java
index 343088f70eb367cc098552141c51abe00335adc7..39106c28d42782b675f9460bc2f21b673d8f4e6a 100644 (file)
@@ -7,15 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.binding;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.opendaylight.yangtools.concepts.Identifier;
 
 /**
  * Object is unique identifier for another object.
  *
  * @param <T> Class of object for which this object is identifier
- * @author ttkacik
  */
-@SuppressFBWarnings(value = "NM_SAME_SIMPLE_NAME_AS_INTERFACE", justification = "This is binding specialization")
-public interface Identifier<T extends Identifiable<?>> extends org.opendaylight.yangtools.concepts.Identifier {
+public interface Key<T extends KeyAware<?>> extends Identifier {
 
 }
similarity index 86%
rename from binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/Identifiable.java
rename to binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/KeyAware.java
index b52d4fec8a9d29eb42933e5fcdaf2afb16a0508d..6fff97eff80dce57a7e7135365c3cd5d3133aae4 100644 (file)
@@ -13,10 +13,8 @@ import org.eclipse.jdt.annotation.NonNull;
  * Identifiable object, which could be identified by it's key.
  *
  * @param <T> Identifier class for this object
- *
- * @author ttkacik
  */
-public interface Identifiable<T extends Identifier<? extends Identifiable<T>>> {
+public interface KeyAware<T extends Key<? extends KeyAware<T>>> {
     /**
      * Returns an unique key for the object.
      *
index ae6038b103757b296cb0aeb61e06969024ede03b..ecbc48aeb63f8c20a9a15bfc2a3894dfb6cd28f4 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.jdt.annotation.NonNull;
  * @param <T> Target data type
  * @param <K> Target key type
  */
-public class KeyedInstanceIdentifier<T extends Identifiable<K> & DataObject, K extends Identifier<T>>
+public class KeyedInstanceIdentifier<T extends KeyAware<K> & DataObject, K extends Key<T>>
         extends InstanceIdentifier<T> {
     @Serial
     private static final long serialVersionUID = 2L;
index 330a0f220b48341d77fa18b63964ef46883dccea..df19d31ff6ba6c053c28da5a1164525f0d93c094 100644 (file)
@@ -14,7 +14,7 @@ import java.io.ObjectStreamException;
 import java.io.Serial;
 import org.eclipse.jdt.annotation.Nullable;
 
-final class KeyedInstanceIdentifierV2<T extends Identifiable<K> & DataObject, K extends Identifier<T>>
+final class KeyedInstanceIdentifierV2<T extends KeyAware<K> & DataObject, K extends Key<T>>
         extends InstanceIdentifierV3<T> {
     @Serial
     private static final long serialVersionUID = 2L;
index a27a95f2551eeaf5205e14b72276e5755bd51060..cecd4aa7e298f282339b315d734e90f2f9f13b95 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
  *
  * @author Robert Varga
  */
-public interface KeyedListAction<K extends Identifier<T>, T extends DataObject & Identifiable<K>,
+public interface KeyedListAction<K extends Key<T>, T extends DataObject & KeyAware<K>,
         I extends RpcInput, O extends RpcOutput> extends Action<KeyedInstanceIdentifier<T, K>, I, O> {
     @Override
     @CheckReturnValue
index 40dd832e9803ce18bdc4bdd357d81401e0240696..49ab974e829f45ce652cf9b4502c965504a406d8 100644 (file)
@@ -20,7 +20,7 @@ import com.google.common.annotations.Beta;
  * @param <K> Parent data tree key type
  */
 @Beta
-public interface KeyedListNotification<N extends KeyedListNotification<N, T, K>, T extends DataObject & Identifiable<K>,
-    K extends Identifier<T>> extends InstanceNotification<N, T> {
+public interface KeyedListNotification<N extends KeyedListNotification<N, T, K>, T extends DataObject & KeyAware<K>,
+    K extends Key<T>> extends InstanceNotification<N, T> {
 
 }
index 1f94a6c9272f24a5f6aaa52030464a771254b559..a0c422d105922348b65b62492867b024ae759194 100644 (file)
@@ -28,8 +28,8 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.binding.Action;
 import org.opendaylight.yangtools.yang.binding.Augmentable;
 import org.opendaylight.yangtools.yang.binding.BindingContract;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 import org.opendaylight.yangtools.yang.binding.Rpc;
 import org.opendaylight.yangtools.yang.binding.RpcInput;
 import org.opendaylight.yangtools.yang.binding.ScalarTypeObject;
@@ -97,9 +97,9 @@ public final class Naming {
     public static final @NonNull String AUGMENTABLE_AUGMENTATION_NAME = "augmentation";
 
     /**
-     * Name of {@link Identifiable#key()}.
+     * Name of {@link KeyAware#key()}.
      */
-    public static final @NonNull String IDENTIFIABLE_KEY_NAME = "key";
+    public static final @NonNull String KEY_AWARE_KEY_NAME = "key";
 
     /**
      * Name of {@link BindingContract#implementedInterface()}.
index db16dcfd841a893bddb7f4cade0c7ef52ec168a8..2a71f5b92db8e48feee593e8e7966127c9fdfa35 100644 (file)
@@ -18,11 +18,11 @@ import java.util.Map.Entry;
 import java.util.stream.Collector;
 import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 /**
- * Utility class for instantiating Maps containing {@link Identifiable} values. Unlike normal Map instantiation
+ * Utility class for instantiating Maps containing {@link KeyAware} values. Unlike normal Map instantiation
  * utilities, methods in this class index values via their identifier, hence providing a more convenient API, amenable
  * to fluent builders.
  *
@@ -54,10 +54,10 @@ import org.opendaylight.yangtools.yang.binding.Identifier;
  * <p>
  * This class allows for two modes of operation:
  * <ul>
- *   <li>Unordered, available through {@link #of(Identifiable...)}/{@link #builder()} family of functions. Maps
+ *   <li>Unordered, available through {@link #of(KeyAware...)}/{@link #builder()} family of functions. Maps
  *       instantiated through this, preferred, interface will have their iteration order randomized, as explain in
  *       Java 9+ unmodifiable collections.</li>
- *   <li>Ordered, available through {@link #ordered(Identifiable...)}/{@link #orderedBuilder()} family of functions.
+ *   <li>Ordered, available through {@link #ordered(KeyAware...)}/{@link #orderedBuilder()} family of functions.
  *       Maps instantiated through this interface have a predictable iteration order, as per {@link ImmutableMap}
  *       class design. The use of this interface is generally discouraged, as it may lead to code relying on map
  *       iteration order. Nevertheless it may prove useful where the goal is to have predictable outcomes and hence
@@ -79,7 +79,7 @@ public final class BindingMap {
      * @return a {@code Map} containing the specified value
      * @throws NullPointerException if the value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1) {
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1) {
         return Map.of(v1.key(), v1);
     }
 
@@ -95,7 +95,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2) {
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2) {
         return Map.of(v1.key(), v1, v2.key(), v2);
     }
 
@@ -112,7 +112,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3);
     }
@@ -131,7 +131,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4);
     }
@@ -151,7 +151,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4, final V v5) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5);
     }
@@ -172,7 +172,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4, final V v5, final V v6) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5, v6.key(), v6);
     }
@@ -194,7 +194,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4, final V v5, final V v6, final V v7) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5, v6.key(), v6, v7.key(), v7);
     }
@@ -217,7 +217,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4, final V v5, final V v6, final V v7, final V v8) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5, v6.key(), v6, v7.key(), v7,
             v8.key(), v8);
@@ -242,7 +242,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4, final V v5, final V v6, final V v7, final V v8, final V v9) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5, v6.key(), v6, v7.key(), v7,
             v8.key(), v8, v9.key(), v9);
@@ -268,7 +268,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V v1, final V v2,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V v1, final V v2,
             final V v3, final V v4, final V v5, final V v6, final V v7, final V v8, final V v9, final V v10) {
         return Map.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5, v6.key(), v6, v7.key(), v7,
             v8.key(), v8, v9.key(), v9, v10.key(), v10);
@@ -286,7 +286,7 @@ public final class BindingMap {
      * @throws NullPointerException if any value is {@code null}, or if the {@code values} array is {@code null}
      */
     @SafeVarargs
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(final V... values) {
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(final V... values) {
         return of(Arrays.asList(values));
     }
 
@@ -301,22 +301,22 @@ public final class BindingMap {
      * @throws IllegalArgumentException if there are any duplicate keys in the provided values
      * @throws NullPointerException if any value is {@code null}, or if the {@code values} array is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> of(
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> of(
             final Collection<V> values) {
         return values.stream().collect(toMap());
     }
 
     /**
-     * Returns a collector which collects binding {@link Identifiable} objects into an unmodifiable map. The resulting
+     * Returns a collector which collects binding {@link KeyAware} objects into an unmodifiable map. The resulting
      * map is <b>NOT</b> guaranteed to retain iteration order of the stream it collects.
      *
      * @param <K> the {@code Map}'s key type
      * @param <V> the {@code Map}'s value type
      * @return A collector that accumulates the input elements into an unmodifiable map.
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>>
+    public static <K extends Key<V>, V extends KeyAware<K>>
             @NonNull Collector<V, ?, ? extends Map<K, V>> toMap() {
-        return Collectors.toUnmodifiableMap(Identifiable::key, v -> v);
+        return Collectors.toUnmodifiableMap(KeyAware::key, v -> v);
     }
 
     /**
@@ -327,7 +327,7 @@ public final class BindingMap {
      * @param <V> the {@code Map}'s value type
      * @return A {@link Builder} instance.
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Builder<K, V> builder() {
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Builder<K, V> builder() {
         return builder(Builder.DEFAULT_INITIAL_CAPACITY);
     }
 
@@ -340,7 +340,7 @@ public final class BindingMap {
      * @param expectedSize Expected number of values in the resulting map
      * @return A {@link Builder} instance.
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Builder<K, V> builder(
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Builder<K, V> builder(
             final int expectedSize) {
         return new UnorderedBuilder<>(expectedSize);
     }
@@ -356,7 +356,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> ordered(final V v1,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> ordered(final V v1,
             final V v2) {
         return ImmutableMap.of(v1.key(), v1, v2.key(), v2);
     }
@@ -373,7 +373,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> ordered(final V v1,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> ordered(final V v1,
             final V v2, final V v3) {
         return ImmutableMap.of(v1.key(), v1, v2.key(), v2, v3.key(), v3);
     }
@@ -391,7 +391,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> ordered(final V v1,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> ordered(final V v1,
             final V v2, final V v3, final V v4) {
         return ImmutableMap.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4);
     }
@@ -410,7 +410,7 @@ public final class BindingMap {
      * @throws IllegalArgumentException if the values contain duplicate keys
      * @throws NullPointerException if any value is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> ordered(final V v1,
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> ordered(final V v1,
             final V v2, final V v3, final V v4, final V v5) {
         return ImmutableMap.of(v1.key(), v1, v2.key(), v2, v3.key(), v3, v4.key(), v4, v5.key(), v5);
     }
@@ -427,7 +427,7 @@ public final class BindingMap {
      * @throws NullPointerException if any value is {@code null}, or if the {@code values} array is {@code null}
      */
     @SafeVarargs
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> ordered(final V... values) {
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> ordered(final V... values) {
         return ordered(Arrays.asList(values));
     }
 
@@ -442,22 +442,22 @@ public final class BindingMap {
      * @throws IllegalArgumentException if there are any duplicate keys in the provided values
      * @throws NullPointerException if any value is {@code null}, or if the {@code values} array is {@code null}
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Map<K, V> ordered(
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Map<K, V> ordered(
             final Collection<V> values) {
         return values.stream().collect(toOrderedMap());
     }
 
     /**
-     * Returns a collector which collects binding {@link Identifiable} objects into an unmodifiable map. The resulting
+     * Returns a collector which collects binding {@link KeyAware} objects into an unmodifiable map. The resulting
      * map will retain iteration order of the stream it collects.
      *
      * @param <K> the {@code Map}'s key type
      * @param <V> the {@code Map}'s value type
      * @return A collector that accumulates the input elements into an unmodifiable map.
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>>
+    public static <K extends Key<V>, V extends KeyAware<K>>
             @NonNull Collector<V, ?, ? extends Map<K, V>> toOrderedMap() {
-        return ImmutableMap.<V, K, V>toImmutableMap(Identifiable::key, v -> v);
+        return ImmutableMap.<V, K, V>toImmutableMap(KeyAware::key, v -> v);
     }
 
     /**
@@ -468,7 +468,7 @@ public final class BindingMap {
      * @param <V> the {@code Map}'s value type
      * @return A {@link Builder} instance.
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Builder<K, V> orderedBuilder() {
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Builder<K, V> orderedBuilder() {
         return orderedBuilder(Builder.DEFAULT_INITIAL_CAPACITY);
     }
 
@@ -481,18 +481,18 @@ public final class BindingMap {
      * @param expectedSize Expected number of values in the resulting map
      * @return A {@link Builder} instance.
      */
-    public static <K extends Identifier<V>, V extends Identifiable<K>> @NonNull Builder<K, V> orderedBuilder(
+    public static <K extends Key<V>, V extends KeyAware<K>> @NonNull Builder<K, V> orderedBuilder(
             final int expectedSize) {
         return new OrderedBuilder<>(expectedSize);
     }
 
     /**
-     * Builder producing a Map containing binding {@link Identifiable} values.
+     * Builder producing a Map containing binding {@link KeyAware} values.
      *
      * @param <K> the {@code Map}'s key type
      * @param <V> the {@code Map}'s value type
      */
-    public abstract static class Builder<K extends Identifier<V>, V extends Identifiable<K>> {
+    public abstract static class Builder<K extends Key<V>, V extends KeyAware<K>> {
         static final int DEFAULT_INITIAL_CAPACITY = 4;
 
         Builder() {
@@ -559,7 +559,7 @@ public final class BindingMap {
         abstract void addEntries(Collection<Entry<K, V>> entries);
     }
 
-    private static final class OrderedBuilder<K extends Identifier<V>, V extends Identifiable<K>>
+    private static final class OrderedBuilder<K extends Key<V>, V extends KeyAware<K>>
             extends Builder<K, V> {
         private final ImmutableMap.Builder<K, V> delegate;
 
@@ -583,7 +583,7 @@ public final class BindingMap {
         }
     }
 
-    private static final class UnorderedBuilder<K extends Identifier<V>, V extends Identifiable<K>>
+    private static final class UnorderedBuilder<K extends Key<V>, V extends KeyAware<K>>
             extends Builder<K, V> {
         private final ArrayList<Entry<K, V>> buffer;
 
index 2483db8855b7e1494bc5539f1b53aee7e3968a6e..b560e84da63872de618b10e4f25b2cdaa8f269eb 100644 (file)
@@ -183,9 +183,9 @@ public class InstanceIdentifierTest {
 
     @Test
     public void keyOfTest() {
-        final Identifier<?> identifier = mock(Identifier.class);
+        final Key<?> identifier = mock(Key.class);
         assertEquals(identifier, InstanceIdentifier.keyOf(
-                new KeyedInstanceIdentifier(Identifiable.class, ImmutableList.of(), false, 0, identifier)));
+                new KeyedInstanceIdentifier(KeyAware.class, ImmutableList.of(), false, 0, identifier)));
     }
 
     @Test
index 927c3100035ccf5cf755b623eafb1deaf5a43a0b..466b168a00c8c84dc8f9ba5480c1ca90db4483ad 100644 (file)
@@ -19,14 +19,14 @@ public class KeyedInstanceIdentifierTest {
 
     @Test
     public void basicTest() {
-        final Identifier<?> key = mock(Identifier.class);
+        final Key<?> key = mock(Key.class);
         final KeyedInstanceIdentifier<?, ?> keyedInstanceIdentifier =
-                new KeyedInstanceIdentifier(Identifiable.class, ImmutableList.of(), false, 0, key);
+                new KeyedInstanceIdentifier(KeyAware.class, ImmutableList.of(), false, 0, key);
 
         assertEquals(key, keyedInstanceIdentifier.getKey());
 
         assertFalse(keyedInstanceIdentifier.fastNonEqual(keyedInstanceIdentifier.builder().build()));
-        assertTrue(new KeyedInstanceIdentifier(Identifiable.class, ImmutableList.of(), false, 0, null)
+        assertTrue(new KeyedInstanceIdentifier(KeyAware.class, ImmutableList.of(), false, 0, null)
                 .fastNonEqual(keyedInstanceIdentifier.builder().build()));
     }
 }
\ No newline at end of file
index ce931158c4c8c98717b02ef14cbf842301099e75..ad22ed517be3bd2fd2af517eb008e7d1f09c06f0 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.yangtools.yang.binding.test.mock;
 import org.opendaylight.yangtools.yang.binding.Augmentable;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 public interface Node extends
     DataObject,
-    Identifiable<NodeKey>,
+    KeyAware<NodeKey>,
     ChildOf<Nodes>,
     Augmentable<Node> {
 
index 8bcdf03f1822178a0a8ebbecc8f424796258f7e1..80e1c020d792c5aea0fe53ed4f18eaa710b06950 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.binding.test.mock;
 
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.Identifiable;
+import org.opendaylight.yangtools.yang.binding.KeyAware;
 
 public interface NodeChild extends
         DataObject,
-        Identifiable<NodeChildKey>,
+        KeyAware<NodeChildKey>,
         ChildOf<Node> {
 
 }
index cb44a6af1d87dd9a7001387ca3ea272703783208..a34becf8e8c9b5cc22ad8a8c4e8cde4f097275c4 100644 (file)
@@ -8,9 +8,9 @@
 package org.opendaylight.yangtools.yang.binding.test.mock;
 
 import java.io.Serial;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
 
-public class NodeChildKey implements Identifier<NodeChild> {
+public class NodeChildKey implements Key<NodeChild> {
     @Serial
     private static final long serialVersionUID = 1L;
 
index cbe3701f54d36fbc010bcaa0d4ccd5c239304556..605484466f782d8fae5c1231ce592c0ae4aa5a30 100644 (file)
@@ -8,9 +8,9 @@
 package org.opendaylight.yangtools.yang.binding.test.mock;
 
 import java.io.Serial;
-import org.opendaylight.yangtools.yang.binding.Identifier;
+import org.opendaylight.yangtools.yang.binding.Key;
 
-public class NodeKey implements Identifier<Node> {
+public class NodeKey implements Key<Node> {
     @Serial
     private static final long serialVersionUID = 1L;
 
index f7acd9901a7fa66f25b71a18c896bde3cb91d5a3..eb9505e8cdcfb68473181c9b927a50b1d16cbabf 100644 (file)
@@ -16,7 +16,6 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.DataRoot;
-import org.opendaylight.yangtools.yang.binding.Identifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
@@ -65,10 +64,8 @@ public class EntityTest {
     public void testEntityNameConstructor() {
         Entity entity = new Entity(ENTITY_TYPE1, "foo");
 
-        Identifier<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
-            .mdsal.core.general.entity.rev150930.Entity> keyID = entity.getIdentifier().firstKeyOf(
-                org.opendaylight.yang.gen.v1.urn
-                    .opendaylight.params.xml.ns.yang.mdsal.core.general.entity.rev150930.Entity.class);
+        var keyID = entity.getIdentifier().firstKeyOf(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang
+            .mdsal.core.general.entity.rev150930.Entity.class);
         assertNotNull("List key not found", keyID);
     }