Promote ImmutableNodes to yang-data-spi 86/104786/6
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 28 Dec 2023 12:47:10 +0000 (13:47 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 29 Dec 2023 05:56:16 +0000 (06:56 +0100)
commit1600e4a57127dc33178bb2953402495d440c8578
tree2705c24fe33ae2ec30f1dc83e559c1914cc50805
parent1867432c68157e9f12a4b795fc9ad78520433bd7
Promote ImmutableNodes to yang-data-spi

Immutable implementations of NormalizedNodes are generally useful for
basic operation of other NormalizedNode implementations -- for example
in the case of a lazily-materialized NormalizeNode.

Move Immutable*NodeBuilders to data.spi.node.impl, hiding them from
outside world and splitting out the actual implementations.

Builders are available indirectly through
data.spi.node.ImmutableNodes.builderFactory(), which centralizes access
and allows us to apply globally-configurable policy to builders (in a
future patch).

yang.data.impl.schema.{Builders,ImmutableNodes} are deprecated for
removal.

JIRA: YANGTOOLS-1259
Change-Id: I9eaaebcde5ce1b61e117ac712276d9288249b51a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
68 files changed:
codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactory.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/NormalizedNode.java
data/yang-data-impl/pom.xml
data/yang-data-impl/src/main/java/module-info.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/Builders.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNodes.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ReusableImmutableNormalizedNodeStreamWriter.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAnyXmlNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAnydataNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableChoiceNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableContainerNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafSetEntryNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableLeafSetNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUnkeyedListEntryNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUnkeyedListNodeBuilder.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUserMapNodeBuilder.java [deleted file]
data/yang-data-spi/pom.xml
data/yang-data-spi/src/main/java/module-info.java
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/CloneableMap.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/CloneableMap.java with 91% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/ImmutableNodes.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/LazyLeafOperations.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/LazyLeafOperations.java with 87% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/LazyValues.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/LazyValues.java with 93% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/UnmodifiableChildrenMap.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/nodes/UnmodifiableChildrenMap.java with 98% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/AbstractImmutableDataContainerNodeBuilder.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableDataContainerNodeBuilder.java with 96% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/AbstractImmutableNormalizedNodeBuilder.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableNormalizedNodeBuilder.java with 96% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableAnydataNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableAnydataNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableAnyxmlNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableBuilderFactory.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableBuilderFactory.java with 73% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableChoiceNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableChoiceNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableContainerNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableContainerNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableDOMSourceAnyxmlNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableLeafNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableLeafNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableLeafSetEntryNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableLeafSetEntryNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableMapEntryNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableMapEntryNodeBuilder.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableMapEntryNodeBuilder.java with 60% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableNormalizedNodeMethods.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableNormalizedNodeMethods.java with 93% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableSystemLeafSetNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableSystemLeafSetNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableSystemMapNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableSystemMapNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUnkeyedListEntryNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUnkeyedListEntryNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUnkeyedListNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUnkeyedListNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUserLeafSetNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUserLeafSetNodeBuilder.java [moved from data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableUserLeafSetNodeBuilder.java with 61% similarity]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUserMapNode.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/impl/ImmutableUserMapNodeBuilder.java [new file with mode: 0644]
data/yang-data-spi/src/main/java/org/opendaylight/yangtools/yang/data/spi/node/package-info.java [new file with mode: 0644]
data/yang-data-spi/src/test/java/org/opendaylight/yangtools/yang/data/spi/node/impl/BuilderTest.java [moved from data/yang-data-impl/src/test/java/org/opendaylight/yangtools/yang/data/impl/schema/BuilderTest.java with 75% similarity]
data/yang-data-tree-ri/pom.xml
data/yang-data-tree-ri/src/main/java/module-info.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/ChoiceModificationStrategy.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/ContainerModificationStrategy.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/LeafSetModificationStrategy.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/ListModificationStrategy.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/MapEntryModificationStrategy.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/MapModificationStrategy.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/SchemaAwareApplyOperation.java
data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java