Define the concept of unresolved QName 52/81052/8
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 20 Mar 2019 17:37:20 +0000 (18:37 +0100)
committerRobert Varga <nite@hq.sk>
Mon, 25 Mar 2019 20:07:04 +0000 (20:07 +0000)
commit8b9ebd167b78bf49ba5dfa28105a2cba4c9e4f67
tree6ecddf8dc8cc2f2f1933cc2fe03181e79356a72f
parent933099fc2dd0cb42de89e69d90113d84f779b542
Define the concept of unresolved QName

YANG Xpaths have dynamic namespace resolution for the default
namespace: during parse time we can only bind qualified node
identifiers.

Unqualified node identifiers require an explicit default namespace
binding step, which happens between when the XPath is parsed and
when it is evaluated, when the context node is determined.

This is quite visible in the context of leafref path expressions:
- typedef expressions are bound to the leaf/leafset referencing them
- leaf expressions in groupings are bound only after they have been
  completely instantiated (i.e. 'uses' outside of grouping context)

Change-Id: I65341793dc520bcc36c45dec76a303080be115a1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
18 files changed:
yang/yang-common/src/main/java/org/opendaylight/yangtools/yang/common/YangNamespaceContext.java
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/QNameReferent.java [new file with mode: 0644]
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/QNameReferentBehavior.java [new file with mode: 0644]
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/ResolvedQNameReferent.java [new file with mode: 0644]
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/UnresolvedQNameReferent.java [new file with mode: 0644]
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangLocationPath.java
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangQNameExpr.java
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathAxis.java
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathExpression.java
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathParser.java
yang/yang-xpath-api/src/main/java/org/opendaylight/yangtools/yang/xpath/api/YangXPathParserFactory.java
yang/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/AntlrXPathParser.java
yang/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/AntlrXPathParserFactory.java
yang/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/AntlrYangXPathExpression.java
yang/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/FunctionSupport.java
yang/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/InstanceIdentifierParser.java
yang/yang-xpath-impl/src/main/java/org/opendaylight/yangtools/yang/xpath/impl/Utils.java
yang/yang-xpath-impl/src/test/java/org/opendaylight/yangtools/yang/xpath/impl/XPathParserTest.java