Rework Anydata model 94/82194/17
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 21 May 2019 14:22:20 +0000 (16:22 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 27 May 2019 11:33:32 +0000 (13:33 +0200)
commit5f95a8f39f8b7a5f9692e449e5c6bdfbf2a22cbe
tree547cc8253fcb87095309bfb5559dd0e124e65892
parent8678e673c08b2a49dc223d03c5bb6bd3413a71ac
Rework Anydata model

AnydataNodes cannot really be made opaque due to stateful nature
of their representation in XML. While we can work around identifiers
by capturing their namespace specification, we cannot work around
identity and instance-identifier codecs, which require full namespace
declaration being available.

Since we cannot understand the value parsing until the content is
bound to a particular model, which may actually never happen, we would
have to lug around the entire NamespaceContext for each node
encountered -- and that is not quite feasible.

This patch takes the escape route by embracing the fact that streamers
and anydata instances need to hash out their streaming properties
themselves.

JIRA: YANGTOOLS-993
Change-Id: If1118902394afb651cfbee3313b2810cdf4e1231
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
49 files changed:
yang/rfc7952-data-api/src/main/java/org/opendaylight/yangtools/rfc7952/data/api/NormalizedMetadataStreamWriter.java
yang/rfc7952-data-api/src/main/java/org/opendaylight/yangtools/rfc7952/data/api/OpaqueAnydataStreamWriter.java [deleted file]
yang/rfc7952-data-api/src/main/java/org/opendaylight/yangtools/rfc7952/data/api/StreamWriterMethods.java [deleted file]
yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/AbstractImmutableOpaqueAnydataStreamWriter.java [deleted file]
yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/ImmutableNormalizedMetadata.java
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/AnydataNode.java
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/OpaqueAnydataNode.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/opaque/OpaqueData.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/opaque/OpaqueDataContainer.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/opaque/OpaqueDataList.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/opaque/OpaqueDataNode.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/opaque/OpaqueDataValue.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/opaque/package-info.java [deleted file]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/AnydataExtension.java [new file with mode: 0644]
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeWriter.java
yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/OpaqueAnydataExtension.java [deleted file]
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaAwareXMLStreamNormalizedNodeStreamWriter.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriter.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XMLStreamNormalizedNodeStreamWriter.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractAnydataTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataParseTest.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataSerializeTest.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/SchemaTracker.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/Builders.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableMetadataNormalizedNodeStreamWriter.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableNormalizedNodeStreamWriter.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/AbstractImmutableAnydataNodeBuilder.java [deleted file]
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableAnydataNodeBuilder.java [new file with mode: 0644]
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/builder/impl/ImmutableOpaqueAnydataNodeBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractAnydataNodeDataWithSchema.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AnydataNodeDataWithSchema.java [new file with mode: 0644]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/OpaqueAnydataNodeDataWithSchema.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/AbstractOpaqueDataContainer.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/AbstractOpaqueDataContainerBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/AbstractOpaqueDataNode.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/AbstractOpaqueDataNodeBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/ImmutableOpaqueData.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/ImmutableOpaqueDataContainer.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/ImmutableOpaqueDataList.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/ImmutableOpaqueDataValue.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/OpaqueDataBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/OpaqueDataContainerBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/OpaqueDataListBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/OpaqueDataValueBuilder.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/opaque/package-info.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/stream/AbstractOpaqueAnydataStreamWriter.java [deleted file]
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/schema/stream/package-info.java [deleted file]