Introduce DataObject{Identifier,Reference} 73/112273/4
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 24 Jun 2024 22:15:43 +0000 (00:15 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 24 Jun 2024 23:50:08 +0000 (01:50 +0200)
commitd2362b5d288144a717b4b0e02b6c8f80298cd7f7
tree1810200a11b05f5e1dd31f69be4f5bcab109dda9
parente7998d3d7bb86e9c6f8c6de076549d6d39f7244d
Introduce DataObject{Identifier,Reference}

InstanceIdentifier has way cluttered API, combining multiple aspects,
without giving useful guarantees.

We introduce DataObjectReference, which captures the addressing
capabilities of an InstanceIdentifier.

We also introduce DataObjectIdentifier, which guarantees isExact() is
true -- and forms the baseline BindingInstanceIdentifier.

Finally, we also the baseline 'WithKey' trait, so it is readily
available as the impact of the target type.

JIRA: YANGTOOLS-1577
Change-Id: Ieb87705f65c2032fdb499cdd74b55c5994718566
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 files changed:
binding/binding-model-ri/src/main/java/org/opendaylight/yangtools/binding/model/ri/BindingTypes.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/Action.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/BindingInstanceIdentifier.java [new file with mode: 0644]
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/DataObjectIdentifier.java [new file with mode: 0644]
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/DataObjectReference.java [new file with mode: 0644]
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/KeyedListAction.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/contract/BuiltInType.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/yang/binding/KIIv4.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifier.java
binding/binding-spec/src/test/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifierTest.java
binding/binding-spec/src/test/java/org/opendaylight/yangtools/yang/binding/KeyedInstanceIdentifierTest.java