Refactor TypedSchemaNode 09/65409/6
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 10 Nov 2017 13:50:11 +0000 (14:50 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 10 Nov 2017 22:53:07 +0000 (23:53 +0100)
commit9549a6b25d1a39cae42e34c32b0a1114e673a91d
treea330a098ed7d88bb368d4c2dff0a86d5738b7358
parentf171f75d80bc94939441c1d3ee2f5393f14792d0
Refactor TypedSchemaNode

Factoration of WhenConditionAware is flushing out a mismatch between
Annotation and TypedSchemaNode.

TypedSchemaNode should really be called TypedDataSchemaNode, as it
captures nodes which are valid in datastore contexts and capture real
data.

Annotation, while sharing the aspect of being type-aware, is not normal
data as implied by DataSchemaNode. Notably it does not have a concept
of being added by augmentation nor being configuration.

In order to reconcile this mismatch, we really need a TypeAware trait,
which is mixed in with DataSchemaNode in TypedDataSchemaNode. Annotation
mixes it with UnknownSchemaNode -- resulting in more correct interfaces
being exposed.

Change-Id: Ie45b982c1a6ee3287ce57be34104b8f745a215ae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
20 files changed:
yang/rfc7952-model-api/src/main/java/org/opendaylight/yangtools/rfc7952/model/api/AnnotationSchemaNode.java
yang/rfc7952-parser-support/src/main/java/org/opendaylight/yangtools/rfc7952/parser/Annotation.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactory.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XMLStreamWriterUtils.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/leafref/LeafRefContextTreeBuilder.java
yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/LeafrefXPathStringParsingPathArgumentBuilder.java
yang/yang-data-jaxen/src/main/java/org/opendaylight/yangtools/yang/data/jaxen/YangFunctionContext.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/AbstractCodecFactory.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/CodecCache.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/LazyCodecCache.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/NoopCodecCache.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/PrecomputedCodecCache.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/SharedCodecCache.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/LeafListSchemaNode.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/LeafSchemaNode.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/TypeAware.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/TypedDataSchemaNode.java [moved from yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/TypedSchemaNode.java with 84% similarity]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtil.java