Reimplement SchemaContextUtil.getBaseTypeForLeafRef() 99/94599/22
authormiroslav.kovac <miroslav.kovac@pantheon.tech>
Tue, 5 Jan 2021 14:00:46 +0000 (15:00 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 16 Feb 2021 08:40:25 +0000 (09:40 +0100)
commit5280e8d0efe5177e5bd9fa15bfd2bdc01e222d1b
treea705c1ff8a007fa4404265c13d6c125a8f8559a8
parente6e443d3e4dfd3d6e0726262dac9239952dc7adc
Reimplement SchemaContextUtil.getBaseTypeForLeafRef()

This is the primary entry point to resolution of TypeDefinitions
and generally inferring along the data tree. We already have
required utilities in SchemaInferenceStack.

Introduce SchemaInferenceStack.resolvePathExpression(), which
serves the serves the same purpose, but results in a stack
manipulation.

This completely removes the need to perform any string-based
operations, or dedicated SchemaNode lookups or anything of that
kind -- removing a lot of legacy crud.

JIRA: YANGTOOLS-1127
JIRA: YANGTOOLS-1229
Change-Id: I64e4f4ef2062ab2a0d143a520a53e8972cf54b26
Signed-off-by: miroslav.kovac <miroslav.kovac@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
38 files changed:
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/JSONCodecFactorySupplier.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONInstanceIdentifierCodec.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonStreamToNormalizedNodeTest.java
yang/yang-data-codec-gson/src/test/resources/bug-4969/yang/bar.yang
yang/yang-data-codec-gson/src/test/resources/leafref/yang/augment-leafref-module.yang
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/SchemaAwareXMLStreamWriterUtils.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamWriterUtils.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/XmlCodecFactory.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlParserStream.java
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStringInstanceIdentifierCodec.java
yang/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java
yang/yang-data-util/src/main/java/module-info.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractStringInstanceIdentifierCodec.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerSchemaNodes.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedNodeStreamWriterStack.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/XpathStringParsingPathArgumentBuilder.java
yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/codec/AbstractCodecFactory.java
yang/yang-model-util/pom.xml
yang/yang-model-util/src/main/java/module-info.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/LeafrefResolver.java [new file with mode: 0644]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/PathExpressionImpl.java [deleted file]
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtil.java
yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/SchemaInferenceStack.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/Bug4969Test.java [deleted file]
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/LeafrefStaticAnalysisTest.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilIntegrationTest.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/SchemaContextUtilTest.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1050Test.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1060Test.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1100Test.java
yang/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT588Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug5335Test.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java