Bug 7038 - Rework 'type decimal64' lookup 24/54524/7
authorPeter Kajsa <pkajsa@cisco.com>
Thu, 23 Mar 2017 16:12:33 +0000 (17:12 +0100)
committerRobert Varga <nite@hq.sk>
Fri, 14 Apr 2017 11:27:20 +0000 (11:27 +0000)
commit54bae2b71afa7d58ce98154b21e2ce1882f53411
treed7b3ba77fcc22610644f068d1417f02206a8ddcb
parent044d83ac4e07a7e7d894838a150e9f5627497289
Bug 7038 - Rework 'type decimal64' lookup

Fix of hack in SourceSpecificContext, which attempts to lookup specific
complex types by considering only a QName's localName and routes
it via BUILTIN_TYPE_SUPPORTS to specific statement support.

This solution introduces argument specific statement sub-definitions.
If a StatementSupport has some argument specific sub-supports, processing
of a statement is routed to appropriate sub-support based on given
statement argument.

Change-Id: I602c0a919107a633f594a4393299f3f6623bd1c5
Signed-off-by: Peter Kajsa <pkajsa@cisco.com>
12 files changed:
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractStatementSupport.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StatementSupport.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementDefinitionContext.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/TypeStatementImpl.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/YangInferencePipeline.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/TypeStatementRfc7950Support.java [new file with mode: 0644]
yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7038Test.java [new file with mode: 0644]
yang/yang-parser-impl/src/test/resources/bugs/bug7038/bar.yang [new file with mode: 0644]
yang/yang-parser-impl/src/test/resources/bugs/bug7038/foo.yang [new file with mode: 0644]
yang/yang-parser-impl/src/test/resources/bugs/bug7038/yang10/foo.yang [new file with mode: 0644]
yang/yang-parser-impl/src/test/resources/bugs/bug7038/yang11/foo.yang [new file with mode: 0644]