Refactor binding.DataRoot 86/112386/2
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 29 Jun 2024 14:52:52 +0000 (16:52 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 30 Jun 2024 08:51:04 +0000 (10:51 +0200)
commitfaf14467a153399316f6aa1a1170fab5d1ff8b02
tree8044f533dbb29b3d716a58ab234fb62e94d338eb
parentcce7cad1971f3fffc8561bb6fa5f0f8b6462e2c0
Refactor binding.DataRoot

DataRoot is really a (currently unaddressable) DataContainer. Make it
generic, forcing specialization, and extend DataContainer.

This ends up cleaning up some sites, which are using generic capture
<R extends DataRoot & DataObject> to express a generated type -- those
now become <R extends DataRoot<R>>.

We also get the goodies of terminal specialization like OpaqueObject,
like an accurate implementedInterface().

JIRA: YANGTOOLS-1577
Change-Id: Ie37fad4b7274e06dbf412c6d3a1cee3d6a6c98c0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
19 files changed:
binding/binding-generator/src/main/java/org/opendaylight/yangtools/binding/generator/impl/reactor/AbstractCompositeGenerator.java
binding/binding-generator/src/main/java/org/opendaylight/yangtools/binding/generator/impl/reactor/ModuleGenerator.java
binding/binding-generator/src/test/java/org/opendaylight/yangtools/binding/generator/impl/DefaultBindingGeneratorTest.java
binding/binding-generator/src/test/java/org/opendaylight/yangtools/binding/generator/impl/IdentityrefTypeTest.java
binding/binding-generator/src/test/java/org/opendaylight/yangtools/binding/generator/impl/UsesTest.java
binding/binding-model-ri/src/main/java/org/opendaylight/yangtools/binding/model/ri/BindingTypes.java
binding/binding-model-ri/src/test/java/org/opendaylight/yangtools/binding/model/ri/BindingTypesTest.java
binding/binding-runtime-osgi/src/main/java/org/opendaylight/yangtools/binding/runtime/osgi/impl/RegularYangModuleInfoRegistry.java
binding/binding-runtime-spi/src/main/java/org/opendaylight/yangtools/binding/runtime/spi/ModuleInfoSnapshotBuilder.java
binding/binding-runtime-spi/src/main/java/org/opendaylight/yangtools/binding/runtime/spi/ModuleInfoSnapshotResolver.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/DataContainer.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/DataRoot.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/YangFeature.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/binding/meta/YangFeatureProvider.java
binding/binding-spec/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java
binding/binding-spec/src/test/java/org/opendaylight/yangtools/binding/test/mock/FooData.java [new file with mode: 0644]
binding/binding-spec/src/test/java/org/opendaylight/yangtools/binding/test/mock/FooRoot.java
binding/binding-spec/src/test/java/org/opendaylight/yangtools/binding/test/mock/Nodes.java
binding/binding-spec/src/test/java/org/opendaylight/yangtools/binding/test/mock/NodesData.java [new file with mode: 0644]