Finish declared statement migration 85/95085/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 9 Feb 2021 01:05:59 +0000 (02:05 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 9 Feb 2021 09:46:31 +0000 (10:46 +0100)
This is final step of getting declared statements out of
yang-parser-rfc7950.

JIRA: YANGTOOLS-1226
Change-Id: Id6212df2def83a856b55d8199e133bf8839bde5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
121 files changed:
yang/yang-model-spi/src/main/java/module-info.java
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/AbstractModelStatement.java
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/AbstractDeclaredEffectiveRootStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractDeclaredEffectiveRootStatement.java with 86% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/AbstractKeyStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/key/AbstractKeyStatement.java with 81% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/AbstractOrderedByStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/AbstractOrderedByStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/DeclaredStatements.java
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyKeyStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/key/EmptyKeyStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyLeafListStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/EmptyLeafListStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyLeafStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/EmptyLeafStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyLengthStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/length/EmptyLengthStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyListStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/EmptyListStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyMandatoryStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/mandatory/EmptyMandatoryStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyMaxElementsStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/max_elements/EmptyMaxElementsStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyMinElementsStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/min_elements/EmptyMinElementsStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyModifierStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/modifier/EmptyModifierStatement.java with 77% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyMustStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/EmptyMustStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyNamespaceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/EmptyNamespaceStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyNotificationStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/EmptyNotificationStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyOrderedByStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/EmptyOrderedByStatement.java with 88% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyOrganizationStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/organization/EmptyOrganizationStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyOutputStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/EmptyOutputStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyPathStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/path/EmptyPathStatement.java with 94% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyPatternStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/EmptyPatternStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyPositionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/position/EmptyPositionStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyPrefixStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/EmptyPrefixStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyPresenceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/EmptyPresenceStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyRangeStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/EmptyRangeStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyReferenceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/reference/EmptyReferenceStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyRequireInstanceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/require_instance/EmptyRequireInstanceStatement.java with 89% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyRevisionDateStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/EmptyRevisionDateStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyRevisionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/EmptyRevisionStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyRpcStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/EmptyRpcStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyTypeStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EmptyTypeStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyTypedefStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/EmptyTypedefStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyUndeclaredOutputStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/EmptyUndeclaredOutputStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyUniqueStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/EmptyUniqueStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyUnitsStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/EmptyUnitsStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyUsesStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/EmptyUsesStatement.java with 91% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyValueStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/value/EmptyValueStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyWhenStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/when/EmptyWhenStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyYangVersionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yang_version/EmptyYangVersionStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyYinElementStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yin_element/EmptyYinElementStatement.java with 90% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/ImplicitStatements.java [moved from yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/UndeclaredStatements.java with 67% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/ModuleStatementImpl.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementImpl.java with 84% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RefineStatementImpl.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/refine/RefineStatementImpl.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularKeyStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/key/RegularKeyStatement.java with 94% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularLeafListStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/RegularLeafListStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularLeafStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/RegularLeafStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularLengthStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/length/RegularLengthStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularListStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/RegularListStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularMandatoryStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/mandatory/RegularMandatoryStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularMaxElementsStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/max_elements/RegularMaxElementsStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularMinElementsStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/min_elements/RegularMinElementsStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularModifierStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/modifier/RegularModifierStatement.java with 81% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularMustStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/RegularMustStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularNamespaceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/RegularNamespaceStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularNotificationStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/RegularNotificationStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularOrderedByStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/RegularOrderedByStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularOrganizationStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/organization/RegularOrganizationStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularOutputStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/RegularOutputStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularPathStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/path/RegularPathStatement.java with 94% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularPatternStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/RegularPatternStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularPositionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/position/RegularPositionStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularPrefixStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/RegularPrefixStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularPresenceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/RegularPresenceStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularRangeStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RegularRangeStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularReferenceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/reference/RegularReferenceStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularRequireInstanceStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/require_instance/RegularRequireInstanceStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularRevisionDateStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RegularRevisionDateStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularRevisionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RegularRevisionStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularRpcStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RegularRpcStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularTypeStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/RegularTypeStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularTypedefStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/RegularTypedefStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularUndeclaredOutputStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/RegularUndeclaredOutputStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularUniqueStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/RegularUniqueStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularUnitsStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/RegularUnitsStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularUsesStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/RegularUsesStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularValueStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/value/RegularValueStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularWhenStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/when/RegularWhenStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularYangVersionStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yang_version/RegularYangVersionStatement.java with 93% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/RegularYinElementStatement.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yin_element/RegularYinElementStatement.java with 92% similarity]
yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/SubmoduleStatementImpl.java [moved from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/submodule/SubmoduleStatementImpl.java with 84% similarity]
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/InputStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/key/KeyStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/LeafListStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/length/LengthStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ListStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/mandatory/MandatoryStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/max_elements/MaxElementsStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/min_elements/MinElementsStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/modifier/ModifierStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/OrderedByStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/organization/OrganizationStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/OutputStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/path/PathStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/PatternStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/position/PositionStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/PrefixStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/PresenceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RangeStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/reference/ReferenceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/refine/RefineStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/require_instance/RequireInstanceStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RevisionStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RevisionDateStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/submodule/SubmoduleStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractTypeStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/UniqueStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/UnitsStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/value/ValueStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/when/WhenStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yang_version/YangVersionStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yin_element/YinElementStatementSupport.java

index 075adbb0f7b803896aa3d7c97319cc918d7d9bb5..fd5972052dc555f86ffb05a1fbf705b38889e9e2 100644 (file)
@@ -11,6 +11,8 @@ module org.opendaylight.yangtools.yang.model.spi {
     exports org.opendaylight.yangtools.yang.model.spi.type;
 
     requires transitive org.opendaylight.yangtools.yang.model.api;
+    requires transitive org.opendaylight.yangtools.yang.xpath.api;
+    requires com.google.common;
     requires org.opendaylight.yangtools.yang.common;
 
     // Annotations
index 8339429e6c680c8438cd0bbdb8192095aee29dba..dcd5c67fbe85294b8afd20d597416da33299a742 100644 (file)
@@ -55,7 +55,7 @@ abstract class AbstractModelStatement<A> implements ModelStatement<A> {
         return set.size() == 1 ? set.iterator().next() : set;
     }
 
-    protected static final <T> @NonNull ImmutableSet<? extends T> unmaskSet(final @NonNull Object masked,
+    protected static final <T> @NonNull ImmutableSet<T> unmaskSet(final @NonNull Object masked,
             final @NonNull Class<T> type) {
         return masked instanceof ImmutableSet ? (ImmutableSet<T>) masked
             // Yes, this is ugly code, which could use an explicit verify, that would just change the what sort
@@ -5,9 +5,8 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
-import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -17,8 +16,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.MetaDeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionAwareDeclaredStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
 
-@Beta
-public abstract class AbstractDeclaredEffectiveRootStatement<D extends DeclaredStatement<UnqualifiedQName>>
+abstract class AbstractDeclaredEffectiveRootStatement<D extends DeclaredStatement<UnqualifiedQName>>
         extends WithSubstatements<UnqualifiedQName> implements LinkageDeclaredStatement,
                 MetaDeclaredStatement<UnqualifiedQName>, RevisionAwareDeclaredStatement, BodyDeclaredStatement {
     protected AbstractDeclaredEffectiveRootStatement(final String rawArgument, final UnqualifiedQName argument,
@@ -5,8 +5,9 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
+import com.google.common.collect.ImmutableSet;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -18,11 +19,11 @@ abstract class AbstractKeyStatement extends WithRawArgument<Set<QName>> implemen
 
     AbstractKeyStatement(final @NonNull String rawArgument, final @NonNull Set<QName> argument) {
         super(rawArgument);
-        this.argument = KeyStatementSupport.maskSet(argument);
+        this.argument = maskSet(ImmutableSet.copyOf(argument));
     }
 
     @Override
     public final Set<QName> argument() {
-        return KeyStatementSupport.unmaskSet(argument);
+        return unmaskSet(argument, QName.class);
     }
 }
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ordered_by;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import static java.util.Objects.requireNonNull;
 
index fe9d6711d340abbf7d0d781807c335c9ebbad222..7ed34aef18b1514ab74b07888e606133e41ac7de 100644 (file)
@@ -9,9 +9,18 @@ package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
+import java.util.List;
+import java.util.Set;
 import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.opendaylight.yangtools.yang.common.Ordering;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
+import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.DeviateKind;
+import org.opendaylight.yangtools.yang.model.api.PathExpression;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
@@ -42,9 +51,52 @@ import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression;
+import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
+import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
+import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
 
 /**
  * Static entry point to instantiating {@link DeclaredStatement} covered in the {@code RFC7950} metamodel.
@@ -317,6 +369,274 @@ public final class DeclaredStatements {
         return substatements.isEmpty() ? createInput(argument) : new RegularInputStatement(argument, substatements);
     }
 
+    public static KeyStatement createKey(final String rawArgument, final Set<QName> argument) {
+        return new EmptyKeyStatement(rawArgument, argument);
+    }
+
+    public static KeyStatement createKey(final String rawArgument, final Set<QName> argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createKey(rawArgument, argument)
+            : new RegularKeyStatement(rawArgument, argument, substatements);
+    }
+
+    public static LeafStatement createLeaf(final QName argument) {
+        return new EmptyLeafStatement(argument);
+    }
+
+    public static LeafStatement createLeaf(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createLeaf(argument) : new RegularLeafStatement(argument, substatements);
+    }
+
+    public static LeafListStatement createLeafList(final QName argument) {
+        return new EmptyLeafListStatement(argument);
+    }
+
+    public static LeafListStatement createLeafList(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createLeafList(argument)
+            : new RegularLeafListStatement(argument, substatements);
+    }
+
+    public static LengthStatement createLength(final String rawArgument, final List<ValueRange> argument) {
+        return new EmptyLengthStatement(rawArgument, argument);
+    }
+
+    public static LengthStatement createLength(final String rawArgument, final List<ValueRange> argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createLength(rawArgument, argument)
+            : new RegularLengthStatement(rawArgument, argument, substatements);
+    }
+
+    public static ListStatement createList(final QName argument) {
+        return new EmptyListStatement(argument);
+    }
+
+    public static ListStatement createList(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createList(argument) : new RegularListStatement(argument, substatements);
+    }
+
+    public static MandatoryStatement createMandatory(final Boolean argument) {
+        return new EmptyMandatoryStatement(argument);
+    }
+
+    public static MandatoryStatement createMandatory(final Boolean argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createMandatory(argument)
+            : new RegularMandatoryStatement(argument, substatements);
+    }
+
+    public static MaxElementsStatement createMaxElements(final String rawArgument, final String argument) {
+        return new EmptyMaxElementsStatement(rawArgument, argument);
+    }
+
+    public static MaxElementsStatement createMaxElements(final String rawArgument, final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createMaxElements(rawArgument, argument)
+            : new RegularMaxElementsStatement(rawArgument, argument, substatements);
+    }
+
+    public static MinElementsStatement createMinElements(final Integer argument) {
+        return new EmptyMinElementsStatement(argument);
+    }
+
+    public static MinElementsStatement createMinElements(final Integer argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createMinElements(argument)
+            : new RegularMinElementsStatement(argument, substatements);
+    }
+
+    public static ModifierStatement createModifier(final ModifierKind argument) {
+        return new EmptyModifierStatement(argument);
+    }
+
+    public static ModifierStatement createModifier(final ModifierKind argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createModifier(argument)
+            : new RegularModifierStatement(argument, substatements);
+    }
+
+    public static ModuleStatement createModule(final String rawArgument, final UnqualifiedQName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new ModuleStatementImpl(rawArgument, argument, substatements);
+    }
+
+    public static MustStatement createMust(final String rawArgument, final QualifiedBound argument) {
+        return new EmptyMustStatement(rawArgument, argument);
+    }
+
+    public static MustStatement createMust(final String rawArgument, final QualifiedBound argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createMust(rawArgument, argument)
+            : new RegularMustStatement(rawArgument, argument, substatements);
+    }
+
+    public static NamespaceStatement createNamespace(final XMLNamespace argument) {
+        return new EmptyNamespaceStatement(argument);
+    }
+
+    public static NamespaceStatement createNamespace(final XMLNamespace argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createNamespace(argument)
+            : new RegularNamespaceStatement(argument, substatements);
+    }
+
+    public static NotificationStatement createNotification(final QName argument) {
+        return new EmptyNotificationStatement(argument);
+    }
+
+    public static NotificationStatement createNotification(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createNotification(argument)
+            : new RegularNotificationStatement(argument, substatements);
+    }
+
+    public static OrganizationStatement createOrganization(final String argument) {
+        return new EmptyOrganizationStatement(argument);
+    }
+
+    public static OrganizationStatement createOrganization(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createOrganization(argument)
+            : new RegularOrganizationStatement(argument, substatements);
+    }
+
+    public static OutputStatement createOutput(final QName argument) {
+        return new EmptyOutputStatement(argument);
+    }
+
+    public static OutputStatement createOutput(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createOutput(argument) : new RegularOutputStatement(argument, substatements);
+    }
+
+    public static OrderedByStatement createOrderedBy(final Ordering argument) {
+        return new EmptyOrderedByStatement(argument);
+    }
+
+    public static OrderedByStatement createOrderedBy(final Ordering argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createOrderedBy(argument)
+            : new RegularOrderedByStatement(argument, substatements);
+    }
+
+    public static PathStatement createPath(final PathExpression argument) {
+        return new EmptyPathStatement(argument);
+    }
+
+    public static PathStatement createPath(final PathExpression argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createPath(argument) : new RegularPathStatement(argument, substatements);
+    }
+
+    public static PatternStatement createPattern(final PatternExpression argument) {
+        return new EmptyPatternStatement(argument);
+    }
+
+    public static PatternStatement createPattern(final PatternExpression argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createPattern(argument)
+            : new RegularPatternStatement(argument, substatements);
+    }
+
+    public static PositionStatement createPosition(final Uint32 argument) {
+        return new EmptyPositionStatement(argument);
+    }
+
+    public static PositionStatement createPosition(final Uint32 argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createPosition(argument)
+            : new RegularPositionStatement(argument, substatements);
+    }
+
+    public static PrefixStatement createPrefix(final String argument) {
+        return new EmptyPrefixStatement(argument);
+    }
+
+    public static PrefixStatement createPrefix(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createPrefix(argument) : new RegularPrefixStatement(argument, substatements);
+    }
+
+    public static PresenceStatement createPresence(final String argument) {
+        return new EmptyPresenceStatement(argument);
+    }
+
+    public static PresenceStatement createPresence(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createPresence(argument)
+            : new RegularPresenceStatement(argument, substatements);
+    }
+
+    public static ReferenceStatement createReference(final String argument) {
+        return new EmptyReferenceStatement(argument);
+    }
+
+    public static ReferenceStatement createReference(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createReference(argument)
+            : new RegularReferenceStatement(argument, substatements);
+    }
+
+    public static RangeStatement createRange(final String rawArgument, final List<ValueRange> argument) {
+        return new EmptyRangeStatement(rawArgument, argument);
+    }
+
+    public static RangeStatement createRange(final String rawArgument, final List<ValueRange> argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createRange(rawArgument, argument)
+            : new RegularRangeStatement(rawArgument, argument, substatements);
+    }
+
+    public static RefineStatement createRefine(final String rawArgument, final Descendant argument) {
+        return createRefine(rawArgument, argument, ImmutableList.of());
+    }
+
+    public static RefineStatement createRefine(final String rawArgument, final Descendant argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new RefineStatementImpl(rawArgument, argument, substatements);
+    }
+
+    public static RequireInstanceStatement createRequireInstance(final Boolean argument) {
+        return new EmptyRequireInstanceStatement(argument);
+    }
+
+    public static RequireInstanceStatement createRequireInstance(final Boolean argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createRequireInstance(argument)
+            : new RegularRequireInstanceStatement(argument, substatements);
+    }
+
+    public static RevisionStatement createRevision(final Revision argument) {
+        return new EmptyRevisionStatement(argument);
+    }
+
+    public static RevisionStatement createRevision(final Revision argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createRevision(argument)
+            : new RegularRevisionStatement(argument, substatements);
+    }
+
+    public static RevisionDateStatement createRevisionDate(final Revision argument) {
+        return new EmptyRevisionDateStatement(argument);
+    }
+
+    public static RevisionDateStatement createRevisionDate(final Revision argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createRevisionDate(argument)
+            : new RegularRevisionDateStatement(argument, substatements);
+    }
+
+    public static RpcStatement createRpc(final QName argument) {
+        return new EmptyRpcStatement(argument);
+    }
+
+    public static RpcStatement createRpc(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createRpc(argument) : new RegularRpcStatement(argument, substatements);
+    }
+
     public static StatusStatement createStatus(final Status argument) {
         return new EmptyStatusStatement(argument);
     }
@@ -325,4 +645,95 @@ public final class DeclaredStatements {
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return substatements.isEmpty() ? createStatus(argument) : new RegularStatusStatement(argument, substatements);
     }
+
+    public static SubmoduleStatement createSubmodule(final String rawArgument, final UnqualifiedQName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return new SubmoduleStatementImpl(rawArgument, argument, substatements);
+    }
+
+    public static TypeStatement createType(final String argument) {
+        return new EmptyTypeStatement(argument);
+    }
+
+    public static TypeStatement createType(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createType(argument) : new RegularTypeStatement(argument, substatements);
+    }
+
+    public static TypedefStatement createTypedef(final QName argument) {
+        return new EmptyTypedefStatement(argument);
+    }
+
+    public static TypedefStatement createTypedef(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createTypedef(argument) : new RegularTypedefStatement(argument, substatements);
+    }
+
+    public static UniqueStatement createUnique(final String rawArgument, final Set<Descendant> argument) {
+        return new EmptyUniqueStatement(rawArgument, argument);
+    }
+
+    public static UniqueStatement createUnique(final String rawArgument, final Set<Descendant> argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createUnique(rawArgument, argument)
+            : new RegularUniqueStatement(rawArgument, argument, substatements);
+    }
+
+    public static UnitsStatement createUnits(final String argument) {
+        return new EmptyUnitsStatement(argument);
+    }
+
+    public static UnitsStatement createUnits(final String argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createUnits(argument) : new RegularUnitsStatement(argument, substatements);
+    }
+
+    public static UsesStatement createUses(final String rawArgument, final QName argument) {
+        return new EmptyUsesStatement(rawArgument, argument);
+    }
+
+    public static UsesStatement createUses(final String rawArgument, final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createUses(rawArgument, argument)
+            : new RegularUsesStatement(rawArgument, argument, substatements);
+    }
+
+    public static ValueStatement createValue(final Integer argument) {
+        return new EmptyValueStatement(argument);
+    }
+
+    public static ValueStatement createValue(final Integer argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createValue(argument) : new RegularValueStatement(argument, substatements);
+    }
+
+    public static WhenStatement createWhen(final String rawArgument, final QualifiedBound argument) {
+        return new EmptyWhenStatement(rawArgument, argument);
+    }
+
+    public static WhenStatement createWhen(final String rawArgument, final QualifiedBound argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createWhen(rawArgument, argument)
+            : new RegularWhenStatement(rawArgument, argument, substatements);
+    }
+
+    public static YangVersionStatement createYangVersion(final YangVersion argument) {
+        return new EmptyYangVersionStatement(argument);
+    }
+
+    public static YangVersionStatement createYangVersion(final YangVersion argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createYangVersion(argument)
+            : new RegularYangVersionStatement(argument, substatements);
+    }
+
+    public static YinElementStatement createYinElement(final Boolean argument) {
+        return new EmptyYinElementStatement(argument);
+    }
+
+    public static YinElementStatement createYinElement(final Boolean argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createYinElement(argument)
+            : new RegularYinElementStatement(argument, substatements);
+    }
 }
similarity index 90%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/key/EmptyKeyStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyKeyStatement.java
index 41a8168ae44f68fb83416fd6f008ec1883f01923..827f3d9f8c8a2102eb0a30c3d0bce2d02552abeb 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
similarity index 91%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/EmptyLeafStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyLeafStatement.java
index 6c56ccc6ad2aa597463075928461442f8ba1e0fc..2b6ac9a38b3cd3db406b116bb19e59070422ab50 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.length;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import java.util.List;
 import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
similarity index 91%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/EmptyListStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyListStatement.java
index 442b2d3469a8d1934c25fc9c7092de01429242d1..84f4f41ff6e3f2e1e55182796750e5e90f5a4fee 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.mandatory;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.max_elements;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.min_elements;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
@@ -5,14 +5,14 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.modifier;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
 import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
 
 final class EmptyModifierStatement extends WithArgument<ModifierKind> implements ModifierStatement {
-    EmptyModifierStatement(final String rawArgument, final ModifierKind argument) {
-        super(rawArgument, argument);
+    EmptyModifierStatement(final ModifierKind argument) {
+        super(argument.getKeyword(), argument);
     }
 }
similarity index 92%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/EmptyMustStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyMustStatement.java
index 73eceadcb0c79f3866bc203b4c6e6a7fef7c385a..b81cb70d202dfa369de95a170b5f1c2155c5c1a7 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ordered_by;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.Ordering;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.organization;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
similarity index 94%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/path/EmptyPathStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyPathStatement.java
index e4f9f2df7bd6fffd6809eea00b78b5da800852de..06e3f61b35069d86147b614f96653c7ec2486d04 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import static java.util.Objects.requireNonNull;
 
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression;
 import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.position;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.presence;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import java.util.List;
 import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.reference;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.require_instance;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision_date;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
similarity index 91%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/EmptyRpcStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyRpcStatement.java
index 5727b8c5404fa29aa2f226a621e3baf92f507d5a..0e17f3ace596770585e54a504a46df0e5e197676 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
similarity index 90%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EmptyTypeStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyTypeStatement.java
index b286528dd97fed98040aeaf7f4c0e99f42123331..750676ed702926e73a00f38c179a9b9f4f4b6714 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import java.util.Set;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.units;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
similarity index 91%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/EmptyUsesStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyUsesStatement.java
index f6128804e82c67e068ad5d725ac838f1396ae2d0..472f0dfe1cfc77a3fe7d82153b089018d1e2e07c 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.value;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
similarity index 92%
rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/when/EmptyWhenStatement.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/EmptyWhenStatement.java
index 64777b6d5f3300f23ebe844ca37dbf6eca46e847..a37e8afd716cd95db891aa876f91a551c7eeb8ae 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.yang_version;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.yin_element;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.ArgumentToString;
similarity index 67%
rename from yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/UndeclaredStatements.java
rename to yang/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/stmt/ImplicitStatements.java
index d54871e0f2ef22eab1aab8b25fd9924acadca4e9..aa0eb593cd02d13dee18456dc32ff7c6356396fe 100644 (file)
@@ -13,15 +13,16 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
 
 /**
  * Static entry point to instantiating {@link DeclaredStatements} covered in the {@code RFC7950} metamodel which are
- * not really declared, i.e. inferred to exist.
+ * not really declared, but rather implicit.
  */
 @Beta
 @NonNullByDefault
-public final class UndeclaredStatements {
-    private UndeclaredStatements() {
+public final class ImplicitStatements {
+    private ImplicitStatements() {
         // Hidden on purpose
     }
 
@@ -34,4 +35,14 @@ public final class UndeclaredStatements {
         return substatements.isEmpty() ? createInput(argument)
             : new RegularUndeclaredInputStatement(argument, substatements);
     }
+
+    public static OutputStatement createOutput(final QName argument) {
+        return new EmptyUndeclaredOutputStatement(argument);
+    }
+
+    public static OutputStatement createOutput(final QName argument,
+            final ImmutableList<? extends DeclaredStatement<?>> substatements) {
+        return substatements.isEmpty() ? createOutput(argument)
+            : new RegularUndeclaredOutputStatement(argument, substatements);
+    }
 }
@@ -5,13 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveRootStatement;
 
 final class ModuleStatementImpl extends AbstractDeclaredEffectiveRootStatement<ModuleStatement>
         implements ModuleStatement {
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.length;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.List;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.mandatory;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.max_elements;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.min_elements;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.modifier;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -14,8 +14,8 @@ import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
 import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
 
 final class RegularModifierStatement extends WithSubstatements<ModifierKind> implements ModifierStatement {
-    RegularModifierStatement(final String rawArgument, final ModifierKind argument,
+    RegularModifierStatement(final ModifierKind argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        super(rawArgument, argument, substatements);
+        super(argument.getKeyword(), argument, substatements);
     }
 }
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ordered_by;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.organization;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Collection;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.position;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.Uint32;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.presence;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.List;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.reference;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.require_instance;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision_date;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.Revision;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.Revision;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Set;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.units;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.value;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.yang_version;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.YangVersion;
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.yin_element;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -5,13 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule;
+package org.opendaylight.yangtools.yang.model.spi.stmt;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveRootStatement;
 
 final class SubmoduleStatementImpl extends AbstractDeclaredEffectiveRootStatement<SubmoduleStatement>
         implements SubmoduleStatement {
index af1c27e8d5b185b211c90282e58377e8afd3ef91..dc9984209282da9330abeabedea893ef81db6ddd 100644 (file)
@@ -22,7 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
 import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
-import org.opendaylight.yangtools.yang.model.spi.stmt.UndeclaredStatements;
+import org.opendaylight.yangtools.yang.model.spi.stmt.ImplicitStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -85,7 +85,7 @@ public final class InputStatementSupport
         final StatementSource source = ctx.source();
         switch (source) {
             case CONTEXT:
-                return UndeclaredStatements.createInput(ctx.getArgument(), substatements);
+                return ImplicitStatements.createInput(ctx.getArgument(), substatements);
             case DECLARATION:
                 return DeclaredStatements.createInput(ctx.getArgument(), substatements);
             default:
@@ -98,7 +98,7 @@ public final class InputStatementSupport
         final StatementSource source = ctx.source();
         switch (source) {
             case CONTEXT:
-                return UndeclaredStatements.createInput(ctx.getArgument());
+                return ImplicitStatements.createInput(ctx.getArgument());
             case DECLARATION:
                 return DeclaredStatements.createInput(ctx.getArgument());
             default:
index 8ae74c88b62ecdf17e14faf7de6aa12b807c5c29..220f442a293419228d0ab0892108f9cd6bd48531 100644 (file)
@@ -23,6 +23,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.KeyEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.antlr.YangStatementLexer;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -110,12 +111,12 @@ public final class KeyStatementSupport
     @Override
     protected KeyStatement createDeclared(final StmtContext<Set<QName>, KeyStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularKeyStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createKey(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected KeyStatement createEmptyDeclared(final StmtContext<Set<QName>, KeyStatement, ?> ctx) {
-        return new EmptyKeyStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createKey(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index 86a534a2b63029b11279f664b9fb84e10d0b120a..210deac7d621e77ca0cd169c0a7fb60e895ddbc3 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
@@ -71,12 +72,12 @@ public final class LeafStatementSupport
     @Override
     protected LeafStatement createDeclared(final StmtContext<QName, LeafStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularLeafStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createLeaf(ctx.getArgument(), substatements);
     }
 
     @Override
     protected LeafStatement createEmptyDeclared(final StmtContext<QName, LeafStatement, ?> ctx) {
-        return new EmptyLeafStatement(ctx.getArgument());
+        return DeclaredStatements.createLeaf(ctx.getArgument());
     }
 
     @Override
index cb5c6d62aca29f6ec1b61bf0d8a3b24c573b653c..80327d2f72753321d25c6bc5b47c63224069d766 100644 (file)
@@ -29,6 +29,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
@@ -96,12 +97,12 @@ public final class LeafListStatementSupport
     @Override
     protected LeafListStatement createDeclared(final StmtContext<QName, LeafListStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularLeafListStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createLeafList(ctx.getArgument(), substatements);
     }
 
     @Override
     protected LeafListStatement createEmptyDeclared(final StmtContext<QName, LeafListStatement, ?> ctx) {
-        return new EmptyLeafListStatement(ctx.getArgument());
+        return DeclaredStatements.createLeafList(ctx.getArgument());
     }
 
     @Override
index befd0af8486da45b0e1249bf1deb3819738dc06b..e06411c2e9b41719512ae4c1eaee13c47ac07300 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LengthEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnresolvedNumber;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -87,12 +88,12 @@ public final class LengthStatementSupport
     @Override
     protected LengthStatement createDeclared(final StmtContext<List<ValueRange>, LengthStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularLengthStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createLength(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected LengthStatement createEmptyDeclared(final StmtContext<List<ValueRange>, LengthStatement, ?> ctx) {
-        return new EmptyLengthStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createLength(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index fe8f2b46d537abc7d6e5d0b1f6f060d703163339..6ce24674407582c48a7bd3c3fc06eb8b9f7d1a77 100644 (file)
@@ -37,6 +37,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
@@ -135,12 +136,12 @@ public final class ListStatementSupport
     @Override
     protected ListStatement createDeclared(final StmtContext<QName, ListStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularListStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createList(ctx.getArgument(), substatements);
     }
 
     @Override
     protected ListStatement createEmptyDeclared(final StmtContext<QName, ListStatement, ?> ctx) {
-        return new EmptyListStatement(ctx.getArgument());
+        return DeclaredStatements.createList(ctx.getArgument());
     }
 
     @Override
index 2f2bad7c15ddfd2f02fda39859c553e239276d70..ce248e1bf75d9f0bc625f21f66d156638c3d5c7a 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -25,8 +26,8 @@ public final class MandatoryStatementSupport extends
 
     private MandatoryStatementSupport() {
         super(YangStmtMapping.MANDATORY,
-            new EmptyMandatoryEffectiveStatement(new EmptyMandatoryStatement(Boolean.FALSE)),
-            new EmptyMandatoryEffectiveStatement(new EmptyMandatoryStatement(Boolean.TRUE)),
+            new EmptyMandatoryEffectiveStatement(DeclaredStatements.createMandatory(Boolean.FALSE)),
+            new EmptyMandatoryEffectiveStatement(DeclaredStatements.createMandatory(Boolean.TRUE)),
             StatementPolicy.contextIndependent());
     }
 
@@ -42,7 +43,7 @@ public final class MandatoryStatementSupport extends
     @Override
     protected MandatoryStatement createDeclared(final StmtContext<Boolean, MandatoryStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularMandatoryStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createMandatory(ctx.getArgument(), substatements);
     }
 
     @Override
index 782aec362ba23dcbe3d99e931329272c3df1e42b..6b44b6631aa41c941c4fe19dc567b24020c9beaf 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -46,12 +47,12 @@ public final class MaxElementsStatementSupport
     @Override
     protected MaxElementsStatement createDeclared(final StmtContext<String, MaxElementsStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularMaxElementsStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createMaxElements(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected MaxElementsStatement createEmptyDeclared(final StmtContext<String, MaxElementsStatement, ?> ctx) {
-        return new EmptyMaxElementsStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createMaxElements(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index 4659b28bfde8d7ccc8cb7080a16e9a3ec15c9be3..95567d813657f2c523d22f157566c91c56f37c46 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -50,12 +51,12 @@ public final class MinElementsStatementSupport
     @Override
     protected MinElementsStatement createDeclared(final Integer argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularMinElementsStatement(argument, substatements);
+        return DeclaredStatements.createMinElements(argument, substatements);
     }
 
     @Override
     protected MinElementsStatement createEmptyDeclared(final Integer argument) {
-        return new EmptyMinElementsStatement(argument);
+        return DeclaredStatements.createMinElements(argument);
     }
 
     @Override
index 7349e1819383948b87a986e6c126ff0f03ffb56a..8d3abd43e1896c194e1aba00cbf4b1e7522f623c 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModifierEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
 import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -53,12 +54,12 @@ public final class ModifierStatementSupport
     @Override
     protected ModifierStatement createDeclared(final StmtContext<ModifierKind, ModifierStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularModifierStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createModifier(ctx.getArgument(), substatements);
     }
 
     @Override
     protected ModifierStatement createEmptyDeclared(final StmtContext<ModifierKind, ModifierStatement, ?> ctx) {
-        return new EmptyModifierStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createModifier(ctx.getArgument());
     }
 
     @Override
index 025b68e1d51cc4d2f51a57d45e3dd51d9ecabbd1..c18f7cb4f5fad7a72cf9312d6e6edcd7c2dea747 100644 (file)
@@ -40,6 +40,7 @@ import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.ModuleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.NamespaceToModule;
 import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace;
@@ -250,7 +251,7 @@ public final class ModuleStatementSupport
     @Override
     protected ModuleStatement createDeclared(final StmtContext<UnqualifiedQName, ModuleStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new ModuleStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createModule(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
index b4f36a530c6c2aa375f93434b4a5a58a682df26c..a5a2e374519ecab9c557b983077c8ab55514c7f5 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -58,12 +59,12 @@ public final class MustStatementSupport
     @Override
     protected MustStatement createDeclared(final StmtContext<QualifiedBound, MustStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularMustStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createMust(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected MustStatement createEmptyDeclared(final StmtContext<QualifiedBound, MustStatement, ?> ctx) {
-        return new EmptyMustStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createMust(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index c3db65944fcf565a3b879de2fbbc115e6d0657a9..6d3b995c0b355122080f7ad996217b0d5adb9221 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -53,12 +54,12 @@ public final class NamespaceStatementSupport
     @Override
     protected NamespaceStatement createDeclared(@NonNull final StmtContext<XMLNamespace, NamespaceStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularNamespaceStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createNamespace(ctx.getArgument(), substatements);
     }
 
     @Override
     protected NamespaceStatement createEmptyDeclared(final StmtContext<XMLNamespace, NamespaceStatement, ?> ctx) {
-        return new EmptyNamespaceStatement(ctx.getArgument());
+        return DeclaredStatements.createNamespace(ctx.getArgument());
     }
 
     @Override
index d3cc4fb4ecd63c540f22986f20059413058e7c7c..e3803d8ad6cd81e68af55d9f19e2106ae21c2b32 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -30,12 +31,12 @@ abstract class AbstractNotificationStatementSupport
     @Override
     protected final NotificationStatement createDeclared(final StmtContext<QName, NotificationStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularNotificationStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createNotification(ctx.getArgument(), substatements);
     }
 
     @Override
     protected final NotificationStatement createEmptyDeclared(final StmtContext<QName, NotificationStatement, ?> ctx) {
-        return new EmptyNotificationStatement(ctx.getArgument());
+        return DeclaredStatements.createNotification(ctx.getArgument());
     }
 
     @Override
index 6ab64b8988faf94fc2e54bb62dc46518ee8ddb40..170c7022702a93102f147dd99297a46c1c3b53e3 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -31,14 +32,14 @@ public final class OrderedByStatementSupport
      * Ordered-by has low argument cardinality, hence we can reuse them in case declaration does not have any
      * substatements (which is the usual case).
      */
-    private static final @NonNull EmptyOrderedByStatement EMPTY_SYSTEM_DECL =
-            new EmptyOrderedByStatement(Ordering.SYSTEM);
-    private static final @NonNull EmptyOrderedByStatement EMPTY_USER_DECL =
-            new EmptyOrderedByStatement(Ordering.USER);
+    private static final @NonNull OrderedByStatement EMPTY_SYSTEM_DECL =
+        DeclaredStatements.createOrderedBy(Ordering.SYSTEM);
+    private static final @NonNull OrderedByStatement EMPTY_USER_DECL =
+        DeclaredStatements.createOrderedBy(Ordering.USER);
     private static final @NonNull EmptyOrderedByEffectiveStatement EMPTY_SYSTEM_EFF =
-            new EmptyOrderedByEffectiveStatement(EMPTY_SYSTEM_DECL);
+        new EmptyOrderedByEffectiveStatement(EMPTY_SYSTEM_DECL);
     private static final @NonNull EmptyOrderedByEffectiveStatement EMPTY_USER_EFF =
-            new EmptyOrderedByEffectiveStatement(EMPTY_USER_DECL);
+        new EmptyOrderedByEffectiveStatement(EMPTY_USER_DECL);
 
     private OrderedByStatementSupport() {
         super(YangStmtMapping.ORDERED_BY, StatementPolicy.contextIndependent());
@@ -76,7 +77,7 @@ public final class OrderedByStatementSupport
     @Override
     protected OrderedByStatement createDeclared(final StmtContext<Ordering, OrderedByStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularOrderedByStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createOrderedBy(ctx.getArgument(), substatements);
     }
 
     @Override
index 96855183b7d4e534bcc2b6fa0d4a01118bf8467b..01260e0fc14ddadb6230d07d5dd14568737f3376 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
@@ -39,12 +40,12 @@ public final class OrganizationStatementSupport
     @Override
     protected OrganizationStatement createDeclared(final String argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularOrganizationStatement(argument, substatements);
+        return DeclaredStatements.createOrganization(argument, substatements);
     }
 
     @Override
     protected OrganizationStatement createEmptyDeclared(final String argument) {
-        return new EmptyOrganizationStatement(argument);
+        return DeclaredStatements.createOrganization(argument);
     }
 
     @Override
index 7cb003378a4ab13946747bf1b00e520f3927b99f..d58b78ce94d270008f2d14ffcd0525ef83e70eb8 100644 (file)
@@ -21,6 +21,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
 import org.opendaylight.yangtools.yang.model.api.stmt.OutputEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.spi.stmt.ImplicitStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -83,9 +85,9 @@ public final class OutputStatementSupport
         final StatementSource source = ctx.source();
         switch (source) {
             case CONTEXT:
-                return new RegularUndeclaredOutputStatement(ctx.getArgument(), substatements);
+                return ImplicitStatements.createOutput(ctx.getArgument(), substatements);
             case DECLARATION:
-                return new RegularOutputStatement(ctx.getArgument(), substatements);
+                return DeclaredStatements.createOutput(ctx.getArgument(), substatements);
             default:
                 throw new IllegalStateException("Unhandled statement source " + source);
         }
@@ -96,9 +98,9 @@ public final class OutputStatementSupport
         final StatementSource source = ctx.source();
         switch (source) {
             case CONTEXT:
-                return new EmptyUndeclaredOutputStatement(ctx.getArgument());
+                return ImplicitStatements.createOutput(ctx.getArgument());
             case DECLARATION:
-                return new EmptyOutputStatement(ctx.getArgument());
+                return DeclaredStatements.createOutput(ctx.getArgument());
             default:
                 throw new IllegalStateException("Unhandled statement source " + source);
         }
index 9782e7fad443c8e32620e2afeb901393a4d543d1..033a994294d60b6373157f4700dcfde1213cdb27 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PathEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -59,12 +60,12 @@ public final class PathStatementSupport
     @Override
     protected PathStatement createDeclared(final StmtContext<PathExpression, PathStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularPathStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createPath(ctx.getArgument(), substatements);
     }
 
     @Override
     protected PathStatement createEmptyDeclared(final StmtContext<PathExpression, PathStatement, ?> ctx) {
-        return new EmptyPathStatement(ctx.getArgument());
+        return DeclaredStatements.createPath(ctx.getArgument());
     }
 
     @Override
index 8f6f9f0f8a681a597250fd54061241b6aa2c83fe..4b9c47e1df1ff850a34d065d89c9adc8a0bb559b 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression;
 import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.model.util.RegexUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -80,13 +81,13 @@ public final class PatternStatementSupport
     @Override
     protected PatternStatement createDeclared(final StmtContext<PatternExpression, PatternStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularPatternStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createPattern(ctx.getArgument(), substatements);
     }
 
     @Override
     protected PatternStatement createEmptyDeclared(
             final StmtContext<PatternExpression, PatternStatement, ?> ctx) {
-        return new EmptyPatternStatement(ctx.getArgument());
+        return DeclaredStatements.createPattern(ctx.getArgument());
     }
 
     @Override
index 19f911bdfe290895810e544284fa7f2f527d50c8..395e571c401f0525f1bead22407b57990bf78fa9 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PositionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -50,12 +51,12 @@ public final class PositionStatementSupport
     @Override
     protected PositionStatement createDeclared(final Uint32 argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularPositionStatement(argument, substatements);
+        return DeclaredStatements.createPosition(argument, substatements);
     }
 
     @Override
     protected PositionStatement createEmptyDeclared(final Uint32 argument) {
-        return new EmptyPositionStatement(argument);
+        return DeclaredStatements.createPosition(argument);
     }
 
     @Override
index c79c7952c27f915faac83e68571688aa613bf27d..a965a17fb1e8ef8de5ff645a89da12e60d0716a3 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -40,12 +41,12 @@ public final class PrefixStatementSupport
     @Override
     protected PrefixStatement createDeclared(final StmtContext<String, PrefixStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularPrefixStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createPrefix(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected PrefixStatement createEmptyDeclared(final StmtContext<String, PrefixStatement, ?> ctx) {
-        return new EmptyPrefixStatement(ctx.getRawArgument());
+        return DeclaredStatements.createPrefix(ctx.getRawArgument());
     }
 
     @Override
index 2ed7a2108907330b9074a38c4e17099ad7027e9d..cbe3b3d33fff53d1be07d3c846ae1b86e86fb249 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -40,12 +41,12 @@ public final class PresenceStatementSupport
     @Override
     protected PresenceStatement createDeclared(final StmtContext<String, PresenceStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularPresenceStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createPresence(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected PresenceStatement createEmptyDeclared(final StmtContext<String, PresenceStatement, ?> ctx) {
-        return new EmptyPresenceStatement(ctx.getRawArgument());
+        return DeclaredStatements.createPresence(ctx.getRawArgument());
     }
 
     @Override
index f68caef7f58f39da788ba02320e3da29a867c75e..ccb5a6b0f3e1e637f0547a6fae1ed6464a57cf98 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnresolvedNumber;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -83,12 +84,12 @@ public final class RangeStatementSupport
     @Override
     protected RangeStatement createDeclared(final StmtContext<List<ValueRange>, RangeStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularRangeStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createRange(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected RangeStatement createEmptyDeclared(final StmtContext<List<ValueRange>, RangeStatement, ?> ctx) {
-        return new EmptyRangeStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createRange(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index e948109db6e83fc9e33d062d860234ef6da5900f..7fe3d4c35bb0bbc55079dc9c98454318d8cf3e48 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
@@ -39,12 +40,12 @@ public final class ReferenceStatementSupport
     @Override
     protected ReferenceStatement createDeclared(final String argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularReferenceStatement(argument, substatements);
+        return DeclaredStatements.createReference(argument, substatements);
     }
 
     @Override
     protected ReferenceStatement createEmptyDeclared(final String argument) {
-        return new EmptyReferenceStatement(argument);
+        return DeclaredStatements.createReference(argument);
     }
 
     @Override
index a7ff0ba562bd2ca253627a4ec129d79f0bc1a380..f147121b4bb8c08761e72ec64ff98f5261099202 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RefineEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -84,13 +85,13 @@ public final class RefineStatementSupport
     @Override
     protected RefineStatement createDeclared(final StmtContext<Descendant, RefineStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RefineStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createRefine(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected RefineStatement createEmptyDeclared(final StmtContext<Descendant, RefineStatement, ?> ctx) {
         // Empty refine is exceedingly unlikely: let's be lazy and reuse the implementation
-        return createDeclared(ctx, ImmutableList.of());
+        return DeclaredStatements.createRefine(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index 9cab1634aeb118009eef8fc9faa74730a36ca31f..3dac1e1df96979b2fcd189cbd49f1060705088e4 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -25,8 +26,8 @@ public final class RequireInstanceStatementSupport
 
     private RequireInstanceStatementSupport() {
         super(YangStmtMapping.REQUIRE_INSTANCE,
-            new EmptyRequireInstanceEffectiveStatement(new EmptyRequireInstanceStatement(Boolean.FALSE)),
-            new EmptyRequireInstanceEffectiveStatement(new EmptyRequireInstanceStatement(Boolean.TRUE)),
+            new EmptyRequireInstanceEffectiveStatement(DeclaredStatements.createRequireInstance(Boolean.FALSE)),
+            new EmptyRequireInstanceEffectiveStatement(DeclaredStatements.createRequireInstance(Boolean.TRUE)),
             StatementPolicy.contextIndependent());
     }
 
@@ -42,7 +43,7 @@ public final class RequireInstanceStatementSupport
     @Override
     protected RequireInstanceStatement createDeclared(final StmtContext<Boolean, RequireInstanceStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularRequireInstanceStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createRequireInstance(ctx.getArgument(), substatements);
     }
 
     @Override
index 8c4748c0ecde6f18393935163eb5847fffd177fc..6828a70d09da2c33e72cd7abb06c572ce18628de 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -55,12 +56,12 @@ public final class RevisionStatementSupport
     @Override
     protected RevisionStatement createDeclared(final StmtContext<Revision, RevisionStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularRevisionStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createRevision(ctx.getArgument(), substatements);
     }
 
     @Override
     protected RevisionStatement createEmptyDeclared(final StmtContext<Revision, RevisionStatement, ?> ctx) {
-        return new EmptyRevisionStatement(ctx.getArgument());
+        return DeclaredStatements.createRevision(ctx.getArgument());
     }
 
     @Override
index f4f2af8e7bbf81172025e77e8072fc0002782bc8..10566d8d07fa4ec59284779839bf5177cf241d01 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -52,12 +53,12 @@ public final class RevisionDateStatementSupport
     @Override
     protected RevisionDateStatement createDeclared(final StmtContext<Revision, RevisionDateStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularRevisionDateStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createRevisionDate(ctx.getArgument(), substatements);
     }
 
     @Override
     protected RevisionDateStatement createEmptyDeclared(final StmtContext<Revision, RevisionDateStatement, ?> ctx) {
-        return new EmptyRevisionDateStatement(ctx.getArgument());
+        return DeclaredStatements.createRevisionDate(ctx.getArgument());
     }
 
     @Override
index 1bd9bc2d04cde7fe46ea6bda752c1977b919c7e7..95fb7366505534f93b7977178a50ecd58a758025 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RpcEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport;
@@ -94,12 +95,12 @@ public final class RpcStatementSupport extends AbstractSchemaTreeStatementSuppor
     @Override
     protected RpcStatement createDeclared(final StmtContext<QName, RpcStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularRpcStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createRpc(ctx.getArgument(), substatements);
     }
 
     @Override
     protected RpcStatement createEmptyDeclared(final StmtContext<QName, RpcStatement, ?> ctx) {
-        return new EmptyRpcStatement(ctx.getArgument());
+        return DeclaredStatements.createRpc(ctx.getArgument());
     }
 
     @Override
index 25fc5196ee4c260c12549798b17c4db330b6b8b3..0349d0ef3797a895a1009b552375eb5a6fe55081 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.SubmoduleNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.CommonStmtCtx;
@@ -160,7 +161,7 @@ public final class SubmoduleStatementSupport
     @Override
     protected SubmoduleStatement createDeclared(final StmtContext<UnqualifiedQName, SubmoduleStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new SubmoduleStatementImpl(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createSubmodule(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
index a1be4f36ce44c5aaf78ad7c6ec7999011b069b85..350a55de6fa8bf0b9ff19d1c816c29ad7aa9e05f 100644 (file)
@@ -55,6 +55,7 @@ import org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Uint64TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.model.spi.type.BitsTypeBuilder;
 import org.opendaylight.yangtools.yang.model.spi.type.EnumerationTypeBuilder;
 import org.opendaylight.yangtools.yang.model.spi.type.InstanceIdentifierTypeBuilder;
@@ -215,14 +216,14 @@ abstract class AbstractTypeStatementSupport
     @Override
     protected final TypeStatement createDeclared(final StmtContext<String, TypeStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularTypeStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createType(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected final TypeStatement createEmptyDeclared(final StmtContext<String, TypeStatement, ?> ctx) {
         final TypeStatement builtin;
         return (builtin = BuiltinTypeStatement.lookup(ctx)) != null ? builtin
-            : new EmptyTypeStatement(ctx.getRawArgument());
+            : DeclaredStatements.createType(ctx.getRawArgument());
     }
 
     @Override
index 34e6c2c5af646728661107ec8a99968988c3d4c1..1106aadd7d1aa35565ef445d60060f6abbd707d6 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
 import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace;
@@ -105,12 +106,12 @@ public final class TypedefStatementSupport extends
     @Override
     protected TypedefStatement createDeclared(final StmtContext<QName, TypedefStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularTypedefStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createTypedef(ctx.getArgument(), substatements);
     }
 
     @Override
     protected TypedefStatement createEmptyDeclared(final StmtContext<QName, TypedefStatement, ?> ctx) {
-        return new EmptyTypedefStatement(ctx.getArgument());
+        return DeclaredStatements.createTypedef(ctx.getArgument());
     }
 
     @Override
index e0babf5747ac09ec53c5849fe66fc98f31295afe..787c170334a25e4724ecf8e3c55d75b4d91798e1 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
 import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -71,12 +72,12 @@ public final class UniqueStatementSupport
     @Override
     protected UniqueStatement createDeclared(final StmtContext<Set<Descendant>, UniqueStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularUniqueStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createUnique(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected UniqueStatement createEmptyDeclared(final StmtContext<Set<Descendant>, UniqueStatement, ?> ctx) {
-        return new EmptyUniqueStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createUnique(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index dffe99470847c9af3160f90955c7bb86c8cdff72..51f1b0c3e63cbaab6f135b42e2a1d27e6fde5dbc 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -41,12 +42,12 @@ public final class UnitsStatementSupport
     @Override
     protected UnitsStatement createDeclared(final StmtContext<String, UnitsStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularUnitsStatement(ctx.getRawArgument(), substatements);
+        return DeclaredStatements.createUnits(ctx.getRawArgument(), substatements);
     }
 
     @Override
     protected UnitsStatement createEmptyDeclared(final StmtContext<String, UnitsStatement, ?> ctx) {
-        return new EmptyUnitsStatement(ctx.getRawArgument());
+        return DeclaredStatements.createUnits(ctx.getRawArgument());
     }
 
     @Override
index f137fc5e7e19b76d77ac6f23f1c05cbd106ede74..540e04e18d10cbcb22c8a884157d329cdadb0394 100644 (file)
@@ -36,6 +36,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Desce
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineEffectiveStatementImpl;
@@ -138,12 +139,12 @@ public final class UsesStatementSupport
     @Override
     protected UsesStatement createDeclared(final StmtContext<QName, UsesStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularUsesStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createUses(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected UsesStatement createEmptyDeclared(final StmtContext<QName, UsesStatement, ?> ctx) {
-        return new EmptyUsesStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createUses(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index f7483745e71681fd54137cf67e2060c8a6210e88..a5f86d8e9c87d6b9ce7bb685ec1e1e4cd54ca025 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -51,12 +52,12 @@ public final class ValueStatementSupport
     @Override
     protected ValueStatement createDeclared(final Integer argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularValueStatement(argument, substatements);
+        return DeclaredStatements.createValue(argument, substatements);
     }
 
     @Override
     protected ValueStatement createEmptyDeclared(@NonNull final Integer argument) {
-        return new EmptyValueStatement(argument);
+        return DeclaredStatements.createValue(argument);
     }
 
     @Override
index 09cf78632ac77e949983f207bd151779336deb45..a6e0f5403b4fc745476125bd58246ce73358dbcc 100644 (file)
@@ -16,6 +16,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.WhenEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@@ -56,12 +57,12 @@ public final class WhenStatementSupport
     @Override
     protected WhenStatement createDeclared(final StmtContext<QualifiedBound, WhenStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularWhenStatement(ctx.getRawArgument(), ctx.getArgument(), substatements);
+        return DeclaredStatements.createWhen(ctx.getRawArgument(), ctx.getArgument(), substatements);
     }
 
     @Override
     protected WhenStatement createEmptyDeclared(final StmtContext<QualifiedBound, WhenStatement, ?> ctx) {
-        return new EmptyWhenStatement(ctx.getRawArgument(), ctx.getArgument());
+        return DeclaredStatements.createWhen(ctx.getRawArgument(), ctx.getArgument());
     }
 
     @Override
index 354d408b21c75b73b9aaec8f3ea6f5318f0c4be6..0a4428cd2e2531adc2830e58f34b042ef32cc997 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -29,14 +30,14 @@ public final class YangVersionStatementSupport
         .build();
     private static final YangVersionStatementSupport INSTANCE = new YangVersionStatementSupport();
 
-    private static final @NonNull EmptyYangVersionStatement EMPTY_VER1_DECL =
-            new EmptyYangVersionStatement(YangVersion.VERSION_1);
-    private static final @NonNull EmptyYangVersionStatement EMPTY_VER1_1_DECL =
-            new EmptyYangVersionStatement(YangVersion.VERSION_1_1);
+    private static final @NonNull YangVersionStatement EMPTY_VER1_DECL =
+        DeclaredStatements.createYangVersion(YangVersion.VERSION_1);
+    private static final @NonNull YangVersionStatement EMPTY_VER1_1_DECL =
+        DeclaredStatements.createYangVersion(YangVersion.VERSION_1_1);
     private static final @NonNull EmptyYangVersionEffectiveStatement EMPTY_VER1_EFF =
-            new EmptyYangVersionEffectiveStatement(EMPTY_VER1_DECL);
+        new EmptyYangVersionEffectiveStatement(EMPTY_VER1_DECL);
     private static final @NonNull EmptyYangVersionEffectiveStatement EMPTY_VER1_1_EFF =
-            new EmptyYangVersionEffectiveStatement(EMPTY_VER1_1_DECL);
+        new EmptyYangVersionEffectiveStatement(EMPTY_VER1_1_DECL);
 
     private YangVersionStatementSupport() {
         super(YangStmtMapping.YANG_VERSION, StatementPolicy.reject());
@@ -65,7 +66,7 @@ public final class YangVersionStatementSupport
     @Override
     protected YangVersionStatement createDeclared(final StmtContext<YangVersion, YangVersionStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularYangVersionStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createYangVersion(ctx.getArgument(), substatements);
     }
 
     @Override
index 8d171ba0440a42d4a2db713fcb277f2059a6c787..664a52af0277ebf44949dfde766832516c7aaf0d 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.YinElementEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
+import org.opendaylight.yangtools.yang.model.spi.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractBooleanStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -25,8 +26,8 @@ public final class YinElementStatementSupport
 
     private YinElementStatementSupport() {
         super(YangStmtMapping.YIN_ELEMENT,
-            new EmptyYinElementEffectiveStatement(new EmptyYinElementStatement(Boolean.FALSE)),
-            new EmptyYinElementEffectiveStatement(new EmptyYinElementStatement(Boolean.TRUE)),
+            new EmptyYinElementEffectiveStatement(DeclaredStatements.createYinElement(Boolean.FALSE)),
+            new EmptyYinElementEffectiveStatement(DeclaredStatements.createYinElement(Boolean.TRUE)),
             StatementPolicy.reject());
     }
 
@@ -42,7 +43,7 @@ public final class YinElementStatementSupport
     @Override
     protected YinElementStatement createDeclared(final StmtContext<Boolean, YinElementStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularYinElementStatement(ctx.getArgument(), substatements);
+        return DeclaredStatements.createYinElement(ctx.getArgument(), substatements);
     }
 
     @Override