DeclaredStatements can contain default implementations 54/74054/8
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 15 Jul 2018 23:51:59 +0000 (01:51 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 16 Jul 2018 06:52:12 +0000 (08:52 +0200)
This eliminates code duplication in implementations, hence is useful
to centralize as a default method.

Change-Id: Icbb1c23018d0104d2e86cb309063b6f924b35337
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
184 files changed:
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/DeclaredStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionStatementAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionStatementContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnydataStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnyxmlStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ArgumentStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AugmentStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BaseStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BelongsToStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BitStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BodyDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BodyGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/CaseStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ChoiceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConditionalDataDefinition.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConditionalFeature.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConfigStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConfigStatementAwareDeclaredStatement.java [moved from yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConfigStatementContainerDeclaredStatement.java with 86% similarity]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConfigStatementContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConstrainedDocumentedDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContactStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContainerStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DataDefinitionAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DataDefinitionContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DataDefinitionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DefaultStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DefaultStatementAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DefaultStatementContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DescriptionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DeviateStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DeviationStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DocumentationGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DocumentedConstraintGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DocumentedDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/EnumStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ErrorMessageStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ExtensionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/FeatureStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/FractionDigitsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/GroupingStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IdentityStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IfFeatureAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ImportStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IncludeStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/InputStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafListStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LengthStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LinkageDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LinkageGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ListStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MandatoryStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MandatoryStatementAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MandatoryStatementContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MaxElementsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MetaDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MetaGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MinElementsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModifierStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModuleStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MultipleElementsDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MultipleElementsGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MustStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MustStatementAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MustStatementContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NamespaceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationStatementAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationStatementContainer.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OperationDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OperationGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrderedByStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OrganizationStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OutputStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PathStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PatternStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PositionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PrefixStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/PresenceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RangeStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ReferenceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RefineStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RequireInstanceStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionDateStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RpcStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/StatusStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SubmoduleStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeGroup.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypedefStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnitsStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UnknownStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/UsesStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ValueStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/WhenStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/WhenStatementAwareDeclaredStatement.java [new file with mode: 0644]
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/YangVersionStatement.java
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/YinElementStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/openconfig/stmt/OpenConfigVersionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractRootStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/action/ActionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anydata/AnydataStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/anyxml/AnyxmlStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/argument/ArgumentStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/base/BaseStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/belongs_to/BelongsToStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/case_/CaseStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/choice/ChoiceStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/config/ConfigStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/config/EmptyConfigStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/contact/ContactStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/container/ContainerStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/default_/DefaultStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/description/DescriptionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/DeviateStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EnumStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/error_message/ErrorMessageStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/UnrecognizedStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/feature/FeatureStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/fraction_digits/FractionDigitsStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/GroupingStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/include/IncludeStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/InputStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/LeafListStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/length/LengthStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ListStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/mandatory/EmptyMandatoryStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/mandatory/MandatoryStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/max_elements/MaxElementsStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/min_elements/MinElementsStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/modifier/ModifierStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/namespace/NamespaceStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/NotificationStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/ordered_by/OrderedByStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/organization/OrganizationStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/OutputStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/path/PathStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/PatternStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/position/PositionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/PrefixStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/presence/PresenceStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RangeStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/reference/ReferenceStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/refine/RefineStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/require_instance/RequireInstanceStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RevisionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision_date/RevisionDateStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/status/StatusStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/submodule/SubmoduleStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BitsSpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BuiltinTypeStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EnumSpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/IdentityRefSpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/InstanceIdentifierSpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/LeafrefSpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/NumericalRestrictionsImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/StringRestrictionsImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/TypeStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/UnionSpecificationImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/units/UnitsStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/value/ValueStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/when/WhenStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yang_version/YangVersionStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/yin_element/YinElementStatementImpl.java
yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionStatementImpl.java
yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractDeclaredStatement.java

index 0da1ea1f1b492f4bcf961c62e6f84d569de306ff..11167a01f7e45a6b90d79d589f8103f9ed674468 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.meta;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
+import com.google.common.collect.Collections2;
 import java.util.Collection;
 import java.util.Optional;
 import java.util.stream.Stream;
@@ -31,19 +32,33 @@ public interface DeclaredStatement<A> extends ModelStatement<A> {
     @Nullable String rawArgument();
 
     /**
-     * Returns collection of explicitly declared child statements, while preserving its original
-     * ordering from original source.
+     * Returns collection of explicitly declared child statements, while preserving its original ordering from original
+     * source.
      *
-     * @return Collection of statements, which were explicitly declared in
-     *         source of model.
+     * @return Collection of statements, which were explicitly declared in source of model.
      */
     @Nonnull Collection<? extends DeclaredStatement<?>> declaredSubstatements();
 
+    /**
+     * Returns collection of explicitly declared child statements, while preserving its original ordering from original
+     * source.
+     *
+     * @param type {@link DeclaredStatement} type
+     * @return Collection of statements, which were explicitly declared in source of model.
+     * @throws NullPointerException if {@code type} is null
+     */
+    default <S extends DeclaredStatement<?>> @NonNull Collection<? extends S> declaredSubstatements(
+            final Class<S> type) {
+        requireNonNull(type);
+        return Collections2.transform(Collections2.filter(declaredSubstatements(), type::isInstance), type::cast);
+    }
+
     /**
      * Find the first effective substatement of specified type.
      *
      * @param type {@link DeclaredStatement} type
      * @return First declared substatement, or empty if no match is found.
+     * @throws NullPointerException if {@code type} is null
      */
     @Beta
     default <T extends DeclaredStatement<?>> @NonNull Optional<T> findFirstDeclaredSubstatement(
index c1bb951b6cfc8f30d38c02817b8cfd5d9164f847..e24563b6b9c28187e146202ae647a153994bd39d 100644 (file)
@@ -9,8 +9,6 @@
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import com.google.common.annotations.Beta;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 /**
  * Represents YANG action statement.
@@ -22,6 +20,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
  * detailed action information.  The argument is the name of the action.
  */
 @Beta
-public interface ActionStatement extends DeclaredStatement<QName>, OperationGroup {
+public interface ActionStatement extends OperationDeclaredStatement {
 
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionStatementAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionStatementAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..7ffe7f9
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+/**
+ * Statement which can contain action statements.
+ */
+@Beta
+public interface ActionStatementAwareDeclaredStatement<A> extends DeclaredStatement<A>, ActionStatementContainer {
+    @Override
+    default @Nonnull Collection<? extends ActionStatement> getActions() {
+        return declaredSubstatements(ActionStatement.class);
+    }
+}
index 981ef6825c2a354ba0ab9b885a68e47ce4326368..9d2d2f02efee59be31059dc271aeb845bd567e5c 100644 (file)
@@ -15,6 +15,7 @@ import javax.annotation.Nonnull;
  * Statement which can contain action statements.
  */
 @Beta
+@Deprecated
 public interface ActionStatementContainer {
     /**
      * Return actions in this container. Since actions were introduced in RFC7950, hence RFC6020 semantics always
index 326d31fd94b350c72b465bce5ffac3456c6cc5d4..0b0325b88a8260bd28fcc06b38f09867834a6c03 100644 (file)
@@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.common.QName;
  * of this document.
  */
 @Beta
-public interface AnydataStatement extends DataDefinitionStatement, ConfigStatementContainerDeclaredStatement<QName>,
-        MandatoryStatementContainer, MustStatementContainer {
+public interface AnydataStatement extends DataDefinitionStatement, ConfigStatementAwareDeclaredStatement<QName>,
+    MandatoryStatementAwareDeclaredStatement<QName>, MustStatementAwareDeclaredStatement<QName> {
 
 }
index b16cb00e249156b76ca96acd4603df6d5b2bf8e5..c10b472aec4a6cc288a1fefa33987f5c400d16e1 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface AnyxmlStatement extends DataDefinitionStatement, ConfigStatementContainerDeclaredStatement<QName>,
-        MandatoryStatementContainer, MustStatementContainer {
+public interface AnyxmlStatement extends DataDefinitionStatement, ConfigStatementAwareDeclaredStatement<QName>,
+    MandatoryStatementAwareDeclaredStatement<QName>, MustStatementAwareDeclaredStatement<QName> {
 
 }
index 9275f01c4515ea4e2eb646d3dee899a1f8490e8a..8e2af9f96ab9d1e85b384e1302b43b1f4e9f5d72 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -14,9 +15,13 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 @Rfc6020AbnfRule("argument-stmt")
 public interface ArgumentStatement extends DeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 
-    @Nonnull QName getName();
-
-    @Nullable YinElementStatement getYinElement();
+    default @Nullable YinElementStatement getYinElement() {
+        final Optional<YinElementStatement> opt = findFirstDeclaredSubstatement(YinElementStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
 
index a3c17c56132ace6f8393167ea37488e757619812..ab89d6d06199b5bae05ac3b8cd8c5beb575d5f8d 100644 (file)
@@ -9,15 +9,19 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.Collection;
 import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DocumentedDeclaredStatement.WithStatus;
 
-public interface AugmentStatement
-        extends DeclaredStatement<SchemaNodeIdentifier>, DataDefinitionContainer, NotificationStatementContainer,
-        ActionStatementContainer, DocumentationGroup.WithStatus, ConditionalDataDefinition, ConditionalFeature {
+public interface AugmentStatement extends WithStatus<SchemaNodeIdentifier>,
+        DataDefinitionAwareDeclaredStatement<SchemaNodeIdentifier>,
+        NotificationStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        ActionStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        WhenStatementAwareDeclaredStatement<SchemaNodeIdentifier> {
 
-    @Nonnull
-    SchemaNodeIdentifier getTargetNode();
+    default @Nonnull SchemaNodeIdentifier getTargetNode() {
+        return argument();
+    }
 
-    @Nonnull
-    Collection<? extends CaseStatement> getCases();
+    default @Nonnull Collection<? extends CaseStatement> getCases() {
+        return declaredSubstatements(CaseStatement.class);
+    }
 }
index e7c5a59285ed63e54f62be3eda8eb6900937472b..a30035e84c5694caf4484981bc51d8780fda76ac 100644 (file)
@@ -12,7 +12,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface BaseStatement extends DeclaredStatement<QName> {
-
-    @Nonnull QName getName();
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
-
index f9a1dd897fb48826e18ac47dd6fbc25f04618a3f..30600e10a0db2120e73decb5225b3a9e5813c0d0 100644 (file)
@@ -7,13 +7,18 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface BelongsToStatement extends DeclaredStatement<String> {
+    default @Nonnull String getModule() {
+        return argument();
+    }
 
-    @Nonnull String getModule();
-
-    @Nonnull PrefixStatement getPrefix();
+    default @Nonnull PrefixStatement getPrefix() {
+        final Optional<PrefixStatement> opt = findFirstDeclaredSubstatement(PrefixStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
 
index 2aa1f9ecd0e01dbcf359a1f4eb3e0281e7b7753e..6c3fae0594e93317e080178c4ac487f336327ae7 100644 (file)
@@ -7,17 +7,18 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-
-public interface BitStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus, ConditionalFeature {
 
-    @Nonnull
-    String getName();
+public interface BitStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        IfFeatureAwareDeclaredStatement<QName> {
+    default @Nonnull String getName() {
+        return argument().getLocalName();
+    }
 
-    @Nullable
-    PositionStatement getPosition();
+    default PositionStatement getPosition() {
+        final Optional<PositionStatement> opt = findFirstDeclaredSubstatement(PositionStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BodyDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/BodyDeclaredStatement.java
new file mode 100644 (file)
index 0000000..7040b31
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+
+@Beta
+public interface BodyDeclaredStatement extends NotificationStatementAwareDeclaredStatement<String>,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<String>, BodyGroup {
+    @Override
+    default @Nonnull Collection<? extends ExtensionStatement> getExtensions() {
+        return declaredSubstatements(ExtensionStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends FeatureStatement> getFeatures() {
+        return declaredSubstatements(FeatureStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends IdentityStatement> getIdentities() {
+        return declaredSubstatements(IdentityStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends AugmentStatement> getAugments() {
+        return declaredSubstatements(AugmentStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends RpcStatement> getRpcs() {
+        return declaredSubstatements(RpcStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends DeviationStatement> getDeviations() {
+        return declaredSubstatements(DeviationStatement.class);
+    }
+}
index 292553599a6c196c086f879b19ed7cb6e3b27815..37b48faa62a727481af9e0d7f056782367360497 100644 (file)
@@ -11,6 +11,7 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 
 @Rfc6020AbnfRule("body-stmts")
+@Deprecated
 public interface BodyGroup extends DataDefinitionContainer.WithReusableDefinitions, NotificationStatementContainer {
 
     @Nonnull Collection<? extends ExtensionStatement> getExtensions();
index aaa008ea9ac1889439376451783302104e0e7651..feed0d916530c73f34a9a994356ee4cc8cb374c1 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface CaseStatement extends DeclaredStatement<QName>, DataDefinitionContainer,
-       DocumentationGroup.WithStatus, ConditionalDataDefinition {
-
-    @Nonnull QName getName();
+public interface CaseStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        DataDefinitionAwareDeclaredStatement<QName>, WhenStatementAwareDeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
index 5750a3ae14d9934043d19dc09a76e1dbeb184a51..3a196b1eb361a565db3a7908fd8141526336038d 100644 (file)
@@ -11,8 +11,10 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface ChoiceStatement extends DataDefinitionStatement, ConfigStatementContainerDeclaredStatement<QName>,
-        DefaultStatementContainer, MandatoryStatementContainer {
+public interface ChoiceStatement extends DataDefinitionStatement, ConfigStatementAwareDeclaredStatement<QName>,
+        DefaultStatementAwareDeclaredStatement, MandatoryStatementAwareDeclaredStatement<QName> {
 
-    @Nonnull Collection<? extends CaseStatement> getCases();
+    default @Nonnull Collection<? extends CaseStatement> getCases() {
+        return declaredSubstatements(CaseStatement.class);
+    }
 }
index b8aa9fed33b2d06b457c8dfd304884aaab59964e..5dca7cdac32b5fd17e824e23a90150f9d4e3b614 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nullable;
 
+@Deprecated
 public interface ConditionalDataDefinition extends ConditionalFeature {
 
     @Nullable WhenStatement getWhenStatement();
index e159e3f42da8011e42f28422cdbaa59ca1830044..ae3a34539047a764497d062c54755a483af260d6 100644 (file)
@@ -11,6 +11,7 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 
 @Rfc6020AbnfRule("*(if-feature-stmt)")
+@Deprecated
 public interface ConditionalFeature {
 
     /**
index ad3aa747eb8a6d38fcf2d7a23d56e6686e08d4e6..2590cb59597ad6b6171ffb7848134b04a185f66e 100644 (file)
@@ -10,7 +10,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface ConfigStatement extends DeclaredStatement<Boolean> {
-
-    boolean getValue();
+    default boolean getValue() {
+        return argument().booleanValue();
+    }
 }
 
@@ -12,7 +12,7 @@ import java.util.Optional;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 @Beta
-public interface ConfigStatementContainerDeclaredStatement<A> extends DeclaredStatement<A>, ConfigStatementContainer {
+public interface ConfigStatementAwareDeclaredStatement<A> extends DeclaredStatement<A>, ConfigStatementContainer {
     @Override
     default ConfigStatement getConfig() {
         final Optional<ConfigStatement> opt = findFirstDeclaredSubstatement(ConfigStatement.class);
index a8ecdc6952931a04fe7501a11a212b70aed86664..af8753ad55db25e3ae9e0841371d3393715994c7 100644 (file)
@@ -12,7 +12,7 @@ import javax.annotation.Nullable;
 /**
  * Marker interface for statements which may contain a 'config' statement, as defined in RFC7950.
  *
- * @deprecated Use {@link ConfigStatementContainerDeclaredStatement} instead.
+ * @deprecated Use {@link ConfigStatementAwareDeclaredStatement} instead.
  */
 @Deprecated
 public interface ConfigStatementContainer {
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConstrainedDocumentedDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ConstrainedDocumentedDeclaredStatement.java
new file mode 100644 (file)
index 0000000..d8bfbab
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+
+/**
+ * Common interface for statements which contain either a description/reference or a description/reference/status combo.
+ */
+@Beta
+public interface ConstrainedDocumentedDeclaredStatement<T> extends DocumentedDeclaredStatement<T>,
+        DocumentedConstraintGroup {
+
+    @Override
+    default ErrorAppTagStatement getErrorAppTagStatement() {
+        final Optional<ErrorAppTagStatement> opt = findFirstDeclaredSubstatement(ErrorAppTagStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default ErrorMessageStatement getErrorMessageStatement() {
+        final Optional<ErrorMessageStatement> opt = findFirstDeclaredSubstatement(ErrorMessageStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    interface WithStatus<T> extends ConstrainedDocumentedDeclaredStatement<T>,
+            DocumentedDeclaredStatement.WithStatus<T> {
+
+    }
+}
index 63be33806e537daf3a5cf5214bd2b8e0b0e79546..06acc31baa8b95f7800f10f2ba60a212bb6cc6a1 100644 (file)
@@ -11,7 +11,7 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface ContactStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getText();
+    default @Nonnull String getText() {
+        return rawArgument();
+    }
 }
-
index be68439e4e5791ff94111d56ef7a3236c0afc00e..222a49d1fc68c90392c0b2b8335ee4713dad1972 100644 (file)
@@ -7,12 +7,16 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface ContainerStatement extends DataDefinitionStatement, DataDefinitionContainer.WithReusableDefinitions,
-        ActionStatementContainer, ConfigStatementContainerDeclaredStatement<QName>, NotificationStatementContainer,
-        MustStatementContainer {
-
-    @Nullable PresenceStatement getPresence();
+public interface ContainerStatement extends DataDefinitionStatement,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>,
+        ActionStatementAwareDeclaredStatement<QName>, ConfigStatementAwareDeclaredStatement<QName>,
+        NotificationStatementAwareDeclaredStatement<QName>, MustStatementAwareDeclaredStatement<QName> {
+    default @Nullable PresenceStatement getPresence() {
+        final Optional<PresenceStatement> opt = findFirstDeclaredSubstatement(PresenceStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DataDefinitionAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DataDefinitionAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..c9ba400
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface DataDefinitionAwareDeclaredStatement<A> extends DeclaredStatement<A>, DataDefinitionContainer {
+    @Override
+    default @Nonnull Collection<? extends DataDefinitionStatement> getDataDefinitions() {
+        return declaredSubstatements(DataDefinitionStatement.class);
+    }
+
+    interface WithReusableDefinitions<A> extends DataDefinitionAwareDeclaredStatement<A>,
+            DataDefinitionContainer.WithReusableDefinitions {
+        @Override
+        default @Nonnull Collection<? extends TypedefStatement> getTypedefs() {
+            return declaredSubstatements(TypedefStatement.class);
+        }
+
+        @Override
+        default @Nonnull Collection<? extends GroupingStatement> getGroupings() {
+            return declaredSubstatements(GroupingStatement.class);
+        }
+    }
+
+}
index b9ded19a7991f03de41a4697c5d70bdd25339317..55a463eaa4afdde770280d36a3e65c31f76cd56f 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import java.util.Collection;
 import javax.annotation.Nonnull;
 
+@Deprecated
 public interface DataDefinitionContainer {
 
     @Nonnull Collection<? extends DataDefinitionStatement> getDataDefinitions();
index 8e70fefd5f9e6931ed680ccd38dd01c1418822f8..2cdafae52f474ae2712d3f8ca10f14b6a95073ab 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 /**
  * Statement that defines new data nodes.
@@ -20,8 +19,9 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
  * Defined in: <a href="https://tools.ietf.org/html/rfc6020#section-3">RFC6020, Section 3</a>
  */
 @Rfc6020AbnfRule("data-def-stmt")
-public interface DataDefinitionStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus,
-       ConditionalDataDefinition {
-
-    @Nonnull QName getName();
+public interface DataDefinitionStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        WhenStatementAwareDeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
index 433d28f3bafbed6feb2d7f7402c31208b440841e..dbbcaed91bf053fada2695c735ded6150f509760 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface DefaultStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return argument();
+    }
 }
 
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DefaultStatementAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DefaultStatementAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..cfdd268
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+/**
+ * Marker interface for statements which may contain a 'default' statement, as defined in RFC7950.
+ */
+@Beta
+public interface DefaultStatementAwareDeclaredStatement extends DeclaredStatement<QName>, DefaultStatementContainer {
+    @Override
+    default DefaultStatement getDefault() {
+        final Optional<DefaultStatement> opt = findFirstDeclaredSubstatement(DefaultStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+}
index 6f032914380cb144d00a48dac462a74ec9b0aeca..5c54fa6ac05c9a60b7e860f93cc0c33563ee17f2 100644 (file)
@@ -11,7 +11,10 @@ import javax.annotation.Nullable;
 
 /**
  * Marker interface for statements which may contain a 'default' statement, as defined in RFC7950.
+ *
+ * @deprecated Use {@link DefaultStatementAwareDeclaredStatement} instead.
  */
+@Deprecated
 public interface DefaultStatementContainer {
     /**
      * Return a {@link DefaultStatement} child, if present.
index fa109f2c7cfd9f63db58c688f5be145a235b4318..afdceb66d84eee52722c05281fc5cf07966f7c44 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface DescriptionStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getText();
+    default @Nonnull String getText() {
+        return argument();
+    }
 }
 
index 5b7b02a47b6d2de8c95d6bc0a46a883b48e624de..e612ceff28dcf1cb55eb54f5a5d1de8ac03209ff 100644 (file)
@@ -8,12 +8,11 @@
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
-
 import org.opendaylight.yangtools.yang.model.api.DeviateKind;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface DeviateStatement extends DeclaredStatement<DeviateKind> {
-
-    @Nonnull
-    DeviateKind getValue();
+    default @Nonnull DeviateKind getValue() {
+        return argument();
+    }
 }
index 0434afbca158bcbd0f3927d00d18d233d0aace22..736059e5ad9d32d6af04687ade9c86245e8588a1 100644 (file)
@@ -9,11 +9,13 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.Collection;
 import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface DeviationStatement extends DeclaredStatement<SchemaNodeIdentifier>, DocumentationGroup {
+public interface DeviationStatement extends DocumentedDeclaredStatement<SchemaNodeIdentifier> {
+    default @Nonnull SchemaNodeIdentifier getTargetNode() {
+        return argument();
+    }
 
-    @Nonnull SchemaNodeIdentifier getTargetNode();
-
-    @Nonnull Collection<? extends DeviateStatement> getDeviateStatements();
+    default @Nonnull Collection<? extends DeviateStatement> getDeviateStatements() {
+        return declaredSubstatements(DeviateStatement.class);
+    }
 }
index cfb42273024fc6779db598e05c6c9f6148ef7dec..b016b90e70d6eb847255ffefc91e5eaa0b01c888 100644 (file)
@@ -11,7 +11,10 @@ import javax.annotation.Nullable;
 
 /**
  * Common interface for statements which contain either a description/reference or a description/reference/status combo.
+ *
+ * @deprecated Use {@link DocumentedDeclaredStatement} instead.
  */
+@Deprecated
 public interface DocumentationGroup {
     /**
      * Return description statement, if available.
index a8e20b9bb733d7fee82fea9a4e564d409cf463ca..c4add583d16e6a5bad9a635e9f5f4142175aa5c3 100644 (file)
@@ -9,6 +9,12 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nullable;
 
+/**
+ * Documented constraints.
+ *
+ * @deprecated Use {@link ConstrainedDocumentedDeclaredStatement} instead.
+ */
+@Deprecated
 public interface DocumentedConstraintGroup extends DocumentationGroup {
 
     @Nullable ErrorAppTagStatement getErrorAppTagStatement();
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DocumentedDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/DocumentedDeclaredStatement.java
new file mode 100644 (file)
index 0000000..1fd59e1
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+/**
+ * Common interface for statements which contain either a description/reference or a description/reference/status combo.
+ */
+@Beta
+public interface DocumentedDeclaredStatement<T> extends DeclaredStatement<T>, DocumentationGroup {
+    @Override
+    default DescriptionStatement getDescription() {
+        final Optional<DescriptionStatement> opt = findFirstDeclaredSubstatement(DescriptionStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default ReferenceStatement getReference() {
+        final Optional<ReferenceStatement> opt = findFirstDeclaredSubstatement(ReferenceStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    interface WithStatus<T> extends DocumentedDeclaredStatement<T>, DocumentationGroup.WithStatus {
+        @Override
+        default @Nullable StatusStatement getStatus() {
+            final Optional<StatusStatement> opt = findFirstDeclaredSubstatement(StatusStatement.class);
+            return opt.isPresent() ? opt.get() : null;
+        }
+    }
+}
index 9e5ed54aa6a7701e93bb74eb44102e81927747be..27695be85e4774b3260eafd6f3f3a6253fdd0a9e 100644 (file)
@@ -7,15 +7,18 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface EnumStatement extends DeclaredStatement<String>, DocumentationGroup.WithStatus, ConditionalFeature {
+public interface EnumStatement extends DocumentedDeclaredStatement.WithStatus<String>,
+        IfFeatureAwareDeclaredStatement<String> {
+    default @Nonnull String getName() {
+        return argument();
+    }
 
-    @Nonnull
-    String getName();
-
-    @Nullable
-    ValueStatement getValue();
+    default @Nullable ValueStatement getValue() {
+        final Optional<ValueStatement> opt = findFirstDeclaredSubstatement(ValueStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
index ab60f112270c661576db05e034d7544e747c45de..27856b49cd3700b8a724fcb467db4521a7f0193c 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface ErrorMessageStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return argument();
+    }
 }
 
index 1fabf22804d160fef37d456470b5111c10f97fdc..7cc6336f07b22bcdccceb60913af1a18c3ae3306 100644 (file)
@@ -7,11 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface ExtensionStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus {
-
-    @Nullable ArgumentStatement getArgument();
+public interface ExtensionStatement extends DocumentedDeclaredStatement.WithStatus<QName> {
+    default @Nullable ArgumentStatement getArgument() {
+        final Optional<ArgumentStatement> opt = findFirstDeclaredSubstatement(ArgumentStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
index c5f3116fff1598ad4e7f28c9734d2d600eb04189..e05ed02e2489f36f4535688b361f98c987eca02f 100644 (file)
@@ -9,9 +9,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface FeatureStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus, ConditionalFeature {
-
-    @Nonnull QName getName();
+public interface FeatureStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        IfFeatureAwareDeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
index da17ab96d195c7644d8e9e0138cab7625b77acb2..c76e2b82f8ea3a89cbb3090c72b430a278d84b60 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface FractionDigitsStatement extends DeclaredStatement<Integer> {
-
-    int getValue();
+    default int getValue() {
+        return argument().intValue();
+    }
 }
index f5b6702c7d523488634c3de9116e475a30afaac0..e3adf6f4e549ca5cce746c2c1b7c2392ddeb2ce8 100644 (file)
@@ -9,10 +9,11 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface GroupingStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus,
-        DataDefinitionContainer.WithReusableDefinitions, NotificationStatementContainer, ActionStatementContainer {
-
-    @Nonnull QName getName();
+public interface GroupingStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>,
+        NotificationStatementAwareDeclaredStatement<QName>, ActionStatementAwareDeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
index 2d260b89d51fe635db7d82fe7c2058b06190761d..7abf04c262ad9dadfe2462251dbc17e62fb258a6 100644 (file)
@@ -10,16 +10,19 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import java.util.Collection;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface IdentityStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus, ConditionalFeature {
-
-    @Nonnull QName getName();
+public interface IdentityStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        IfFeatureAwareDeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 
     /**
      * Returns the base identities of this identity.
      *
      * @return base identities, empty if there are none.
      */
-    @Nonnull Collection<? extends BaseStatement> getBases();
+    default @Nonnull Collection<? extends BaseStatement> getBases() {
+        return declaredSubstatements(BaseStatement.class);
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IfFeatureAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/IfFeatureAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..6362b11
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface IfFeatureAwareDeclaredStatement<A> extends DeclaredStatement<A>, ConditionalFeature {
+    @Override
+    default @Nonnull Collection<? extends IfFeatureStatement> getIfFeatures() {
+        return declaredSubstatements(IfFeatureStatement.class);
+    }
+}
index 53781bffd32b0fd53a67d39114302cb1180434a1..fd5443ce78a653a1a1ecaa0aedcf009bc418a132 100644 (file)
@@ -7,16 +7,22 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface ImportStatement extends DeclaredStatement<String>, DocumentationGroup {
+public interface ImportStatement extends DocumentedDeclaredStatement<String> {
+    default @Nonnull String getModule() {
+        return rawArgument();
+    }
 
-    @Nonnull String getModule();
+    default @Nonnull PrefixStatement getPrefix() {
+        final Optional<PrefixStatement> opt = findFirstDeclaredSubstatement(PrefixStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 
-    @Nonnull PrefixStatement getPrefix();
-
-    @Nullable RevisionDateStatement getRevisionDate();
+    default @Nullable RevisionDateStatement getRevisionDate() {
+        final Optional<RevisionDateStatement> opt = findFirstDeclaredSubstatement(RevisionDateStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
-
index efbfa36ac970124b18d450e57624314a8f2beb14..0e4ade579a85d207e01e825e3030d5804d14e673 100644 (file)
@@ -7,14 +7,18 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface IncludeStatement extends DeclaredStatement<String>, DocumentationGroup {
+public interface IncludeStatement extends DocumentedDeclaredStatement<String> {
+    default @Nonnull String getModule() {
+        return argument();
+    }
 
-    @Nonnull String getModule();
-
-    @Nullable RevisionDateStatement getRevisionDate();
+    default @Nullable RevisionDateStatement getRevisionDate() {
+        final Optional<RevisionDateStatement> opt = findFirstDeclaredSubstatement(RevisionDateStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
 
index 0187ab6293344a95ce335cd5ad763e6189df72d2..1f39845a4ed62cd9eb337ebb67f3a5a8e3030bb0 100644 (file)
@@ -10,7 +10,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface InputStatement extends DeclaredStatement<QName>, DataDefinitionContainer.WithReusableDefinitions,
-         MustStatementContainer {
+public interface InputStatement extends DeclaredStatement<QName>,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>,
+        MustStatementAwareDeclaredStatement<QName> {
 
 }
index 3e20a19fb64017ab52f7eb13079b2df22aa8885b..bc318aafcc40e12e12e4ce16e104bd7b362dbdc5 100644 (file)
@@ -11,13 +11,15 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface LeafListStatement extends DataDefinitionStatement, MultipleElementsGroup, TypeGroup,
-        ConfigStatementContainerDeclaredStatement<QName>, MustStatementContainer {
+public interface LeafListStatement extends MultipleElementsDeclaredStatement, TypeAwareDeclaredStatement,
+        ConfigStatementAwareDeclaredStatement<QName>, MustStatementAwareDeclaredStatement<QName> {
     /**
      * Return default statements defined in this leaf-list. For RFC6020 semantics, this method returns an empty
      * collection.
      *
      * @return collection of default statements
      */
-    @Nonnull Collection<? extends DefaultStatement> getDefaults();
+    default @Nonnull Collection<? extends DefaultStatement> getDefaults() {
+        return declaredSubstatements(DefaultStatement.class);
+    }
 }
index 70dff3ec93ecc9e7b0fb1dd4bc04e0da2462e26f..ee20d074a97cdacbc1ac3f4501342d90614a6992 100644 (file)
@@ -9,8 +9,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface LeafStatement extends DataDefinitionStatement, TypeGroup,
-        ConfigStatementContainerDeclaredStatement<QName>, DefaultStatementContainer, MandatoryStatementContainer,
-        MustStatementContainer {
+public interface LeafStatement extends DataDefinitionStatement, TypeAwareDeclaredStatement,
+        ConfigStatementAwareDeclaredStatement<QName>, DefaultStatementAwareDeclaredStatement,
+        MandatoryStatementAwareDeclaredStatement<QName>, MustStatementAwareDeclaredStatement<QName> {
 
 }
index c5dcdcf1f2b55f3e17b055ca610bff8885ed7d42..11c96ec116e8b9363c52675176a9b32ae7d2098a 100644 (file)
@@ -9,9 +9,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.List;
 import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface LengthStatement extends DeclaredStatement<List<ValueRange>>, DocumentedConstraintGroup {
+public interface LengthStatement extends ConstrainedDocumentedDeclaredStatement<List<ValueRange>> {
     @Nonnull
     @Override
     List<ValueRange> argument();
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LinkageDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LinkageDeclaredStatement.java
new file mode 100644 (file)
index 0000000..51ddcf4
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface LinkageDeclaredStatement extends DeclaredStatement<String>, LinkageGroup {
+    @Override
+    default @Nonnull Collection<? extends ImportStatement> getImports() {
+        return declaredSubstatements(ImportStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends IncludeStatement> getIncludes() {
+        return declaredSubstatements(IncludeStatement.class);
+    }
+}
index be8eb8b18d0acd4b105575f7f8de6db2fe58d67e..5f6094f96ffbd8ee297a86b829608469e2038407 100644 (file)
@@ -11,6 +11,7 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 
 @Rfc6020AbnfRule("linkage-stms")
+@Deprecated
 public interface LinkageGroup {
 
     @Nonnull Collection<? extends ImportStatement> getImports();
index f2598bc4b0152ed7edf93dbe468c02a4059caf2e..9b8938354d9bf5d8aca859b590ab87350cf5a58a 100644 (file)
@@ -8,15 +8,20 @@
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.Collection;
+import java.util.Optional;
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 
-public interface ListStatement extends DataDefinitionStatement, MultipleElementsGroup,
-        DataDefinitionContainer.WithReusableDefinitions, ConfigStatementContainerDeclaredStatement<QName>,
-        ActionStatementContainer, MustStatementContainer, NotificationStatementContainer {
+public interface ListStatement extends MultipleElementsDeclaredStatement,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>,
+        ConfigStatementAwareDeclaredStatement<QName>, ActionStatementAwareDeclaredStatement<QName>,
+        MustStatementAwareDeclaredStatement<QName>, NotificationStatementAwareDeclaredStatement<QName> {
+    default KeyStatement getKey() {
+        final Optional<KeyStatement> opt = findFirstDeclaredSubstatement(KeyStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 
-    @Nullable KeyStatement getKey();
-
-    @Nonnull Collection<? extends UniqueStatement> getUnique();
+    default @Nonnull Collection<? extends UniqueStatement> getUnique() {
+        return declaredSubstatements(UniqueStatement.class);
+    }
 }
index 4d727b18b11ce93f3f0f4c9aa9e272d7ae5d726e..ab730a9da577a97f1a6559eeeff805963adf73cb 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface MandatoryStatement extends DeclaredStatement<Boolean> {
-
-    @Nonnull Boolean getValue();
+    default @Nonnull Boolean getValue() {
+        return argument();
+    }
 }
 
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MandatoryStatementAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MandatoryStatementAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..ff7098c
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+/**
+ * Marker interface for statements which may contain a 'mandatory' statement, as defined in RFC7950.
+ */
+@Beta
+public interface MandatoryStatementAwareDeclaredStatement<T> extends DeclaredStatement<T>,
+        MandatoryStatementContainer {
+    /**
+     * Return a {@link MandatoryStatement} child, if present.
+     *
+     * @return A {@link MandatoryStatement}, or null if none is present.
+     */
+    @Override
+    default @Nullable MandatoryStatement getMandatory() {
+        final Optional<MandatoryStatement> opt = findFirstDeclaredSubstatement(MandatoryStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+}
index 0f0168015133e90713113944f4e24e2c173f5426..7028b575fc53ecd3946ddc0d16c7d5aa7175fd27 100644 (file)
@@ -10,8 +10,11 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import javax.annotation.Nullable;
 
 /**
- * Marker interface for statements which may contain a 'mandaotry' statement, as defined in RFC7950.
+ * Marker interface for statements which may contain a 'mandatory' statement, as defined in RFC7950.
+ *
+ * @deprecated Use {@link MandatoryStatementAwareDeclaredStatement} instead.
  */
+@Deprecated
 public interface MandatoryStatementContainer {
     /**
      * Return a {@link MandatoryStatement} child, if present.
index 310d4f98c7e3be0f4a5965741d35ad47ab2f6968..b7cca0138dbb9c94063fd70dfbd7bf53ee21574c 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface MaxElementsStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return argument();
+    }
 }
 
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MetaDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MetaDeclaredStatement.java
new file mode 100644 (file)
index 0000000..1d5ec78
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+
+/**
+ * Common interface for statements which contain either a description/reference or a description/reference/status combo.
+ */
+@Beta
+public interface MetaDeclaredStatement<T> extends DocumentedDeclaredStatement<T>, MetaGroup {
+    @Override
+    default OrganizationStatement getOrganization() {
+        final Optional<OrganizationStatement> opt = findFirstDeclaredSubstatement(OrganizationStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default ContactStatement getContact() {
+        final Optional<ContactStatement> opt = findFirstDeclaredSubstatement(ContactStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+}
index e19ee815ad480515c46e0895b5204f5eda632b00..18973a1460429e620064df7709791833d4c48659 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import javax.annotation.Nullable;
 
 @Rfc6020AbnfRule("meta-stmts")
+@Deprecated
 public interface MetaGroup extends DocumentationGroup {
 
     @Nullable OrganizationStatement getOrganization();
index d25dbb9c58e22342a5c0479a4b062a50f050f4a9..5f204218543e8a92551847b87ce616fdbea01b89 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface MinElementsStatement extends DeclaredStatement<Integer> {
-
-    @Nonnull Integer getValue();
+    default @Nonnull Integer getValue() {
+        return argument();
+    }
 }
 
index 0d04ee2a52e908f875f9d0f26473d1ba0bbab2c7..5b79ddbc1282f1c2d3aaf9bbc40f68dc1a585fc3 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
  */
 @Beta
 public interface ModifierStatement extends DeclaredStatement<ModifierKind> {
-
-    @Nonnull ModifierKind getValue();
+    default @Nonnull ModifierKind getValue() {
+        return argument();
+    }
 }
index b190dbf983fe66ff8d05aeb7a142ece850adc5f3..bea4422b59072bcb521ef465c357f5f7395ad14f 100644 (file)
@@ -7,11 +7,31 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface ModuleStatement extends DeclaredStatement<String>, ModuleHeaderGroup, LinkageGroup, MetaGroup,
-        RevisionGroup, BodyGroup {
+public interface ModuleStatement extends MetaDeclaredStatement<String>, ModuleHeaderGroup, LinkageDeclaredStatement,
+        RevisionAwareDeclaredStatement, BodyDeclaredStatement {
+    default @Nonnull String getName() {
+        return rawArgument();
+    }
 
-    @Nonnull String getName();
+    @Override
+    default YangVersionStatement getYangVersion() {
+        final Optional<YangVersionStatement> opt = findFirstDeclaredSubstatement(YangVersionStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Nonnull
+    @Override
+    default NamespaceStatement getNamespace() {
+        final Optional<NamespaceStatement> opt = findFirstDeclaredSubstatement(NamespaceStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default PrefixStatement getPrefix() {
+        final Optional<PrefixStatement> opt = findFirstDeclaredSubstatement(PrefixStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MultipleElementsDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MultipleElementsDeclaredStatement.java
new file mode 100644 (file)
index 0000000..cb1ac3c
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+
+@Beta
+public interface MultipleElementsDeclaredStatement extends DataDefinitionStatement, MultipleElementsGroup {
+    @Override
+    default MinElementsStatement getMinElements() {
+        final Optional<MinElementsStatement> opt = findFirstDeclaredSubstatement(MinElementsStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default MaxElementsStatement getMaxElements() {
+        final Optional<MaxElementsStatement> opt = findFirstDeclaredSubstatement(MaxElementsStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default OrderedByStatement getOrderedBy() {
+        final Optional<OrderedByStatement> opt = findFirstDeclaredSubstatement(OrderedByStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+}
index b4134b68abaf94115957b416adaf7db6eb818b28..7f3571cad23cbbdfcfec920114d5f1698c2fe801 100644 (file)
@@ -9,6 +9,12 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nullable;
 
+/**
+ * Common statements of collection-like statements.
+ *
+ * @deprecated Use {@link MultipleElementsDeclaredStatement} instead.
+ */
+@Deprecated
 public interface MultipleElementsGroup {
 
     @Nullable MinElementsStatement getMinElements();
index d2132d1db330c33439767bbd6769a6b0346810c2..b2c33b30981ef8ba57c0fe827b41b42532205e0b 100644 (file)
@@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface MustStatement extends DeclaredStatement<RevisionAwareXPath>, DocumentedConstraintGroup {
-
-    @Nonnull RevisionAwareXPath getCondition();
+public interface MustStatement extends ConstrainedDocumentedDeclaredStatement<RevisionAwareXPath> {
+    default @Nonnull RevisionAwareXPath getCondition() {
+        return argument();
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MustStatementAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/MustStatementAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..3e12c66
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface MustStatementAwareDeclaredStatement<A> extends DeclaredStatement<A>,
+        MustStatementContainer {
+    @Override
+    default @Nonnull Collection<? extends MustStatement> getMusts() {
+        return declaredSubstatements(MustStatement.class);
+    }
+}
index f49a5f7d7ffce978188fd56bfc5a8f60bf68fdb9..af2ce53e958f0e1f177ff5b4f5fcba10c55083ce 100644 (file)
@@ -13,7 +13,10 @@ import javax.annotation.Nonnull;
 /**
  * Marker interface for statements which may contain a 'must' statement, as defined in RFC7950. There is a significant
  * difference RFC6020 (YANG 1) and RFC7590 (YANG 1.1) in which statements sport this feature.
+ *
+ * @deprecated Use {@link MustStatementAwareDeclaredStatement} instead.
  */
+@Deprecated
 public interface MustStatementContainer {
     /**
      * Return collection of {@link MustStatement}. For RFC6020, this method returns an empty collection for statements
index 92a1967cdb2c4f1357493c3e2e696c366e252df7..cef5579f3079708c81f2d41760e262a4be31675c 100644 (file)
@@ -12,7 +12,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface NamespaceStatement extends DeclaredStatement<URI> {
-
-    @Nonnull URI getUri();
+    default @Nonnull URI getUri() {
+        return argument();
+    }
 }
 
index 779acf7e85e4585ec9cf1a1dba239688f99a37e7..a709b9b86394babb7402f93e7fb8f238da61251f 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface NotificationStatement extends DeclaredStatement<QName>,
-       DataDefinitionContainer.WithReusableDefinitions, DocumentationGroup.WithStatus, ConditionalFeature,
-       MustStatementContainer {
-
-    @Nonnull QName getName();
+public interface NotificationStatement extends DocumentedDeclaredStatement.WithStatus<QName>,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>, IfFeatureAwareDeclaredStatement<QName>,
+        MustStatementAwareDeclaredStatement<QName> {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationStatementAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationStatementAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..325f591
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface NotificationStatementAwareDeclaredStatement<A> extends DeclaredStatement<A>,
+        NotificationStatementContainer {
+    @Override
+    default @Nonnull Collection<? extends NotificationStatement> getNotifications() {
+        return declaredSubstatements(NotificationStatement.class);
+    }
+}
index 5d000e5627a900206e4db08e3e12b0795fcebbe6..c59afb586fe5427688442d07e7efc5d7c569f38e 100644 (file)
@@ -14,7 +14,10 @@ import javax.annotation.Nonnull;
 /**
  * Marker interface for statements which may contain a 'notification' statement, as defined in RFC7950. There is
  * a significant difference RFC6020 (YANG 1) and RFC7590 (YANG 1.1) in which statements sport this feature.
+ *
+ * @deprecated Use {@link NotificationStatementAwareDeclaredStatement} instead.
  */
+@Deprecated
 public interface NotificationStatementContainer {
     /**
      * Return collection of {@link NotificationStatement}. For RFC6020, this method returns an empty collection for
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OperationDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OperationDeclaredStatement.java
new file mode 100644 (file)
index 0000000..c92ebba
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import java.util.Optional;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.common.QName;
+
+/**
+ * Common interface for action and rpc statements.
+ */
+@Beta
+public interface OperationDeclaredStatement extends DocumentedDeclaredStatement.WithStatus<QName>, OperationGroup,
+        IfFeatureAwareDeclaredStatement<QName> {
+    @Override
+    default @Nonnull QName getName() {
+        return argument();
+    }
+
+    @Override
+    default InputStatement getInput() {
+        final Optional<InputStatement> opt = findFirstDeclaredSubstatement(InputStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default OutputStatement getOutput() {
+        final Optional<OutputStatement> opt = findFirstDeclaredSubstatement(OutputStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+
+    @Override
+    default @Nonnull Collection<? extends TypedefStatement> getTypedefs() {
+        return declaredSubstatements(TypedefStatement.class);
+    }
+
+    @Override
+    default @Nonnull Collection<? extends GroupingStatement> getGroupings() {
+        return declaredSubstatements(GroupingStatement.class);
+    }
+}
index 3a6f4bbfb58bb2511200d08ed9b60de794798719..c10b1f02296937cca917bfb64ddb79c64e388bd7 100644 (file)
@@ -16,7 +16,10 @@ import org.opendaylight.yangtools.yang.common.QName;
 
 /**
  * Common interface for action and rpc statements.
+ *
+ * @deprecated Use {@link OperationDeclaredStatement} instead.
  */
+@Deprecated
 @Beta
 public interface OperationGroup extends DocumentationGroup.WithStatus, ConditionalFeature {
 
index bb3935c7caa7b853f0740ba8dd18f5f0a62ebf94..e837b390acf7b504ab6b1dcce5110c2a0761f346 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface OrderedByStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return argument();
+    }
 }
 
index 20bb371903747cf982a70103d2fea01d3daf4cef..17ee20476dbf423ec651feb7027cc79719746c10 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface OrganizationStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getText();
+    default @Nonnull String getText() {
+        return argument();
+    }
 }
 
index 8c332f0988ab14e9c9f40964634231ef59d64efe..f15d82012879aa4e7dc5631703d41aa155dba025 100644 (file)
@@ -10,7 +10,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface OutputStatement extends DeclaredStatement<QName>, DataDefinitionContainer.WithReusableDefinitions,
-        MustStatementContainer {
+public interface OutputStatement extends DeclaredStatement<QName>,
+        DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>,
+        MustStatementAwareDeclaredStatement<QName> {
 
 }
index bef4abb60d3c82c43f8fbda48d4d6b1f9c12a0a6..07836f71c412962d90c2842b848b22efd6454ea8 100644 (file)
@@ -12,8 +12,9 @@ import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface PathStatement extends DeclaredStatement<RevisionAwareXPath> {
-
     // FIXME: Introduce proper type representing parsed leafref
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return rawArgument();
+    }
 }
 
index e1cc96c4c708753b17c77a50ba58b72453fa0f75..078e1a109c224ad581aecbfb455f2430725927d7 100644 (file)
@@ -7,15 +7,15 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 
-public interface PatternStatement extends DeclaredStatement<PatternConstraint>, DocumentedConstraintGroup {
-
-    @Nonnull
-    PatternConstraint getValue();
+public interface PatternStatement extends ConstrainedDocumentedDeclaredStatement<PatternConstraint> {
+    default @Nonnull PatternConstraint getValue() {
+        return argument();
+    }
 
     /**
      * Return a modifier statement, if present. In RFC6020 semantics, there are no modifiers and this methods always
@@ -23,5 +23,8 @@ public interface PatternStatement extends DeclaredStatement<PatternConstraint>,
      *
      * @return modifier statement, nul if not present.
      */
-    @Nullable ModifierStatement getModifierStatement();
+    default @Nullable ModifierStatement getModifierStatement() {
+        final Optional<ModifierStatement> opt = findFirstDeclaredSubstatement(ModifierStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
index cb29d6afbb7affdc529bf2285b99e83430f04659..e5a732cef43a4487f5faf88316f596fd25073a6f 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface PositionStatement extends DeclaredStatement<Long> {
-
-    long getValue();
+    default long getValue() {
+        return argument().longValue();
+    }
 }
index 7f768c227695a6697c18ff612d506aece5138f74..6d555aed01ae062c94e950a80931466440003a1e 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface PrefixStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return rawArgument();
+    }
 }
 
index af5e1d0f902e460f9178034d4d256b0b4295aa98..53135e37f6bdf6d3df588ac166c9c5513ea34560 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface PresenceStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getValue();
+    default @Nonnull String getValue() {
+        return argument();
+    }
 }
 
index 28c03217e4350e8f0cc4e68eabb211aa0d934d94..072734010acb8453155e868daa950bda5bf0c21b 100644 (file)
@@ -9,9 +9,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.List;
 import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface RangeStatement extends DeclaredStatement<List<ValueRange>>, DocumentedConstraintGroup {
+public interface RangeStatement extends ConstrainedDocumentedDeclaredStatement<List<ValueRange>> {
     @Nonnull
     @Override
     List<ValueRange> argument();
index 085544f1e91edc4ac045c470cc71a80269a3775e..4efc770ccd377e910b110fdc33bcb65ece227990 100644 (file)
@@ -11,7 +11,8 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface ReferenceStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getText();
+    default @Nonnull String getText() {
+        return rawArgument();
+    }
 }
 
index 376d5b8c80e84dd568e7acee42aee2c09727b23b..3fef92eb87f35fc2310bb42f364cf3324afec1e4 100644 (file)
@@ -8,22 +8,34 @@
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.Collection;
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-public interface RefineStatement extends ConfigStatementContainerDeclaredStatement<SchemaNodeIdentifier>,
-        DocumentationGroup, ConditionalFeature, MandatoryStatementContainer, MustStatementContainer {
-    String getTargetNode();
+public interface RefineStatement extends ConfigStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        DocumentedDeclaredStatement<SchemaNodeIdentifier>, IfFeatureAwareDeclaredStatement<SchemaNodeIdentifier>,
+        MandatoryStatementAwareDeclaredStatement<SchemaNodeIdentifier>,
+        MustStatementAwareDeclaredStatement<SchemaNodeIdentifier> {
+    default @Nonnull String getTargetNode() {
+        return rawArgument();
+    }
 
-    @Nonnull
-    Collection<? extends DefaultStatement> getDefaults();
+    default @Nonnull Collection<? extends DefaultStatement> getDefaults() {
+        return declaredSubstatements(DefaultStatement.class);
+    }
 
-    @Nullable
-    PresenceStatement getPresence();
+    default @Nullable PresenceStatement getPresence() {
+        final Optional<PresenceStatement> opt = findFirstDeclaredSubstatement(PresenceStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 
-    @Nullable
-    MinElementsStatement getMinElements();
+    default @Nullable MinElementsStatement getMinElements() {
+        final Optional<MinElementsStatement> opt = findFirstDeclaredSubstatement(MinElementsStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 
-    @Nullable
-    MaxElementsStatement getMaxElements();
+    default @Nullable MaxElementsStatement getMaxElements() {
+        final Optional<MaxElementsStatement> opt = findFirstDeclaredSubstatement(MaxElementsStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 }
index d71838776de202501eefdcb2d6df416046d8e10e..3614b325fb694792c5c96f63b71a31cbb4c3eb47 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface RequireInstanceStatement extends DeclaredStatement<Boolean> {
-
-    boolean getValue();
+    default boolean getValue() {
+        return argument().booleanValue();
+    }
 }
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RevisionAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..206180e
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface RevisionAwareDeclaredStatement extends DeclaredStatement<String>, RevisionGroup {
+    @Override
+    default @Nonnull Collection<? extends RevisionStatement> getRevisions() {
+        return declaredSubstatements(RevisionStatement.class);
+    }
+}
index 057f7b4750565f5bd32446cf5386ffa94e121d52..dd2c6526d82e7a92baf2126fcdc1fb40afe4a43e 100644 (file)
@@ -11,7 +11,7 @@ import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface RevisionDateStatement extends DeclaredStatement<Revision> {
-
-    Revision getDate();
+    default Revision getDate() {
+        return argument();
+    }
 }
-
index ff85a626f239591e8e63d6be569b6ed1a6ed2d5e..9d9c8c5a9ddcaa59420949d1d58d748b26cca899 100644 (file)
@@ -11,6 +11,7 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 
 @Rfc6020AbnfRule("revision-stmts")
+@Deprecated
 public interface RevisionGroup {
 
     @Nonnull Collection<? extends RevisionStatement> getRevisions();
index 017ad49b5c9b25ab621a10fa4a45428721d11e97..bc0e16a87641cbfe17e042961dab1209041fe2e9 100644 (file)
@@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface RevisionStatement extends DeclaredStatement<Revision>, DocumentationGroup {
-
-    @Nonnull Revision getDate();
+public interface RevisionStatement extends DocumentedDeclaredStatement<Revision> {
+    default @Nonnull Revision getDate() {
+        return argument();
+    }
 }
index 1300ed32d578f543c218be59d8ad70891d30428e..20d928e151566adeec9a733d8ff1757bac9b7313 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-
-public interface RpcStatement extends DeclaredStatement<QName>, OperationGroup {
+public interface RpcStatement extends OperationDeclaredStatement {
 
 }
index 8ed3c23eafa2ba1d121c5fd692b6dd44801ce066..4600919518e73127fabdaf944df0bbc1ee3ff79c 100644 (file)
@@ -12,7 +12,8 @@ import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface StatusStatement extends DeclaredStatement<Status> {
-
-    @Nonnull Status getValue();
+    default @Nonnull Status getValue() {
+        return argument();
+    }
 }
 
index 3a2c7867fd4c814b5267528aee09fff0f79ec33e..9dbfbd28c40d4435a3d1705391dc3d083c51d830 100644 (file)
@@ -7,17 +7,23 @@
  */
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface SubmoduleStatement extends DeclaredStatement<String>, LinkageGroup, MetaGroup, RevisionGroup,
-        BodyGroup {
+public interface SubmoduleStatement extends MetaDeclaredStatement<String>, LinkageDeclaredStatement,
+        RevisionAwareDeclaredStatement, BodyDeclaredStatement {
+    default @Nonnull String getName() {
+        return rawArgument();
+    }
 
-    @Nonnull String getName();
+    default @Nullable YangVersionStatement getYangVersion() {
+        final Optional<YangVersionStatement> opt = findFirstDeclaredSubstatement(YangVersionStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
 
-    @Nullable YangVersionStatement getYangVersion();
-
-    @Nonnull BelongsToStatement getBelongsTo();
+    default @Nonnull BelongsToStatement getBelongsTo() {
+        return findFirstDeclaredSubstatement(BelongsToStatement.class).get();
+    }
 }
 
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/TypeAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..fcbdb3d
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+
+@Beta
+public interface TypeAwareDeclaredStatement extends DeclaredStatement<QName>, TypeGroup {
+    @Override
+    default @Nonnull TypeStatement getType() {
+        return findFirstDeclaredSubstatement(TypeStatement.class).get();
+    }
+
+    @Override
+    default @Nullable UnitsStatement getUnits() {
+        final Optional<UnitsStatement> opt = findFirstDeclaredSubstatement(UnitsStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+}
index ef72ffda3cf599761dcee87d3cde4f0f75e49717..f0c488a323146d44f8ef0184ab8e4c3eb292fb37 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+@Deprecated
 public interface TypeGroup {
 
     @Nonnull TypeStatement getType();
index 0277f124677dd5091e0285df5d8a6981ccc773da..d419d880dc8f9a4ecfd8a7eb7599fa159bc71a19 100644 (file)
@@ -8,47 +8,62 @@
 package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import java.util.Collection;
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 @Rfc6020AbnfRule("type-stmt")
 public interface TypeStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getName();
+    default @Nonnull String getName() {
+        return argument();
+    }
 
     @Rfc6020AbnfRule("numerical-restrictions")
     interface NumericalRestrictions extends TypeStatement {
 
-        @Nonnull RangeStatement getRange();
+        default @Nonnull RangeStatement getRange() {
+            return findFirstDeclaredSubstatement(RangeStatement.class).get();
+        }
     }
 
     @Rfc6020AbnfRule("decimal64-specification")
     interface Decimal64Specification extends TypeStatement {
-
-        @Nonnull FractionDigitsStatement getFractionDigits();
-
-        @Nullable RangeStatement getRange();
+        default @Nonnull FractionDigitsStatement getFractionDigits() {
+            return findFirstDeclaredSubstatement(FractionDigitsStatement.class).get();
+        }
+
+        default @Nullable RangeStatement getRange() {
+            final Optional<RangeStatement> opt = findFirstDeclaredSubstatement(RangeStatement.class);
+            return opt.isPresent() ? opt.get() : null;
+        }
     }
 
     @Rfc6020AbnfRule("string-restrictions")
     interface StringRestrictions extends TypeStatement {
-
-        @Nullable LengthStatement getLength();
-
-        @Nonnull Collection<? extends PatternStatement> getPatterns();
+        default @Nullable LengthStatement getLength() {
+            final Optional<LengthStatement> opt = findFirstDeclaredSubstatement(LengthStatement.class);
+            return opt.isPresent() ? opt.get() : null;
+        }
+
+        default @Nonnull Collection<? extends PatternStatement> getPatterns() {
+            return declaredSubstatements(PatternStatement.class);
+        }
     }
 
     @Rfc6020AbnfRule("enum-specification")
     interface EnumSpecification extends TypeStatement {
 
-        @Nonnull Collection<? extends EnumStatement> getEnums();
+        default @Nonnull Collection<? extends EnumStatement> getEnums() {
+            return declaredSubstatements(EnumStatement.class);
+        }
     }
 
     @Rfc6020AbnfRule("leafref-specification")
     interface LeafrefSpecification extends TypeStatement {
-
-        @Nonnull PathStatement getPath();
+        default @Nonnull PathStatement getPath() {
+            return findFirstDeclaredSubstatement(PathStatement.class).get();
+        }
 
         /**
          * Return require-instance statement child, if present. For RFC6020 semantics, this method always returns
@@ -56,13 +71,26 @@ public interface TypeStatement extends DeclaredStatement<String> {
          *
          * @return require-instance statement, if present.
          */
-        @Nullable RequireInstanceStatement getRequireInstance();
+        default @Nullable RequireInstanceStatement getRequireInstance() {
+            final Optional<RequireInstanceStatement> opt =
+                    findFirstDeclaredSubstatement(RequireInstanceStatement.class);
+            return opt.isPresent() ? opt.get() : null;
+        }
     }
 
     @Rfc6020AbnfRule("instanceidentifier-specification")
     interface InstanceIdentifierSpecification extends TypeStatement {
-
-        @Nullable RequireInstanceStatement getRequireInstance();
+        /**
+         * Return require-instance statement child, if present. For RFC6020 semantics, this method always returns
+         * null.
+         *
+         * @return require-instance statement, if present.
+         */
+        default @Nullable RequireInstanceStatement getRequireInstance() {
+            final Optional<RequireInstanceStatement> opt =
+                    findFirstDeclaredSubstatement(RequireInstanceStatement.class);
+            return opt.isPresent() ? opt.get() : null;
+        }
     }
 
     @Rfc6020AbnfRule("identityref-specification")
@@ -73,24 +101,29 @@ public interface TypeStatement extends DeclaredStatement<String> {
          * @return collection of base statements (in YANG 1.1 models) or a collection containing just one base
          *         statement (in YANG 1.0 models)
          */
-        @Nonnull Collection<? extends BaseStatement> getBases();
+        default @Nonnull Collection<? extends BaseStatement> getBases() {
+            return declaredSubstatements(BaseStatement.class);
+        }
     }
 
     @Rfc6020AbnfRule("bits-specification")
     interface BitsSpecification extends TypeStatement {
-
-        @Nonnull Collection<? extends BitStatement> getBits();
+        default @Nonnull Collection<? extends BitStatement> getBits() {
+            return declaredSubstatements(BitStatement.class);
+        }
     }
 
     @Rfc6020AbnfRule("union-specification")
     interface UnionSpecification extends TypeStatement {
-
-        @Nonnull Collection<? extends TypeStatement> getTypes();
+        default @Nonnull Collection<? extends TypeStatement> getTypes() {
+            return declaredSubstatements(TypeStatement.class);
+        }
     }
 
     @Rfc6020AbnfRule("binary-specification")
     interface BinarySpecification extends TypeStatement {
-
-        @Nullable LengthStatement getLength();
+        default @Nonnull Collection<? extends LengthStatement> getLength() {
+            return declaredSubstatements(LengthStatement.class);
+        }
     }
 }
index cd1fb1d4f47e6bb153b4f5ae4c8deae599761a70..c0d9305374ee1e9cd83b6589d1a5e1e9821534f8 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface TypedefStatement extends DeclaredStatement<QName>, DocumentationGroup.WithStatus, TypeGroup,
-    DefaultStatementContainer {
-
-    @Nonnull QName getName();
+public interface TypedefStatement extends DocumentedDeclaredStatement.WithStatus<QName>, TypeAwareDeclaredStatement,
+        DefaultStatementAwareDeclaredStatement {
+    default @Nonnull QName getName() {
+        return argument();
+    }
 }
 
index a79d79f5b6640af79e67f1eec49851a3a87f052e..19f2cb8c57ddd7a20ca517e2cdb901e607e7219e 100644 (file)
@@ -11,7 +11,7 @@ import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface UnitsStatement extends DeclaredStatement<String> {
-
-    @Nonnull String getName();
+    default @Nonnull String getName() {
+        return argument();
+    }
 }
-
index c74f9465bbcc3caf6360354426ca77c1a4c06cbd..7819a447f7255b390bbf5a29a99dd888376f75d9 100644 (file)
@@ -18,6 +18,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
  * @param <A> Argument type ({@link Void} if statement does not have argument.)
  */
 public interface UnknownStatement<A> extends DeclaredStatement<A> {
-
-    @Nullable A getArgument();
+    default @Nullable A getArgument() {
+        return argument();
+    }
 }
index 5b2174459e826cede403d1ddbc9e6a6ad94340e4..3ceb4faac25056b1625ed0baa8b13ec26d7f4b92 100644 (file)
@@ -11,8 +11,11 @@ import java.util.Collection;
 import javax.annotation.Nonnull;
 
 public interface UsesStatement extends DataDefinitionStatement {
+    default @Nonnull Collection<? extends RefineStatement> getRefines() {
+        return declaredSubstatements(RefineStatement.class);
+    }
 
-    @Nonnull Collection<? extends RefineStatement> getRefines();
-
-    @Nonnull Collection<? extends AugmentStatement> getAugments();
+    default @Nonnull Collection<? extends AugmentStatement> getAugments() {
+        return declaredSubstatements(AugmentStatement.class);
+    }
 }
index 90e1d1203cedaaff4b38884116e9b0e0f2fe9115..a3037bbf87451b21b73b0296ebf0e2bcaa9ecaf2 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface ValueStatement extends DeclaredStatement<Integer> {
-
-    int getValue();
+    default int getValue() {
+        return argument().intValue();
+    }
 }
index b87d54e387f996c21aeda9fb4712446b5a3f9872..6d4ec05d6321786439c6f4a180b41d7f4bcfe67a 100644 (file)
@@ -9,10 +9,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
-public interface WhenStatement extends DeclaredStatement<RevisionAwareXPath>, DocumentationGroup {
-
-    @Nonnull RevisionAwareXPath getCondition();
+public interface WhenStatement extends DocumentedDeclaredStatement<RevisionAwareXPath> {
+    default @Nonnull RevisionAwareXPath getCondition() {
+        return argument();
+    }
 }
 
diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/WhenStatementAwareDeclaredStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/WhenStatementAwareDeclaredStatement.java
new file mode 100644 (file)
index 0000000..d0eb147
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2018 Pantheon Technoglogies, s.r.o. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.model.api.stmt;
+
+import com.google.common.annotations.Beta;
+import java.util.Optional;
+import javax.annotation.Nullable;
+
+@Beta
+public interface WhenStatementAwareDeclaredStatement<A> extends IfFeatureAwareDeclaredStatement<A>,
+        ConditionalDataDefinition {
+    @Override
+    default @Nullable WhenStatement getWhenStatement() {
+        final Optional<WhenStatement> opt = findFirstDeclaredSubstatement(WhenStatement.class);
+        return opt.isPresent() ? opt.get() : null;
+    }
+}
index 2133c7d4e19fb7a3d69bec23cc3ac9dece7a4ecf..68b12f118430c714900b9c6c9d450b3693c5f87b 100644 (file)
@@ -12,7 +12,8 @@ import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface YangVersionStatement extends DeclaredStatement<YangVersion> {
-
-    @Nonnull YangVersion getValue();
+    default @Nonnull YangVersion getValue() {
+        return argument();
+    }
 }
 
index f3bc6bc0ec375ab98cd598c425f9cf7fc81ed174..9895e946c16c6100db5060b03c9c575fa3d0a266 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 
 public interface YinElementStatement extends DeclaredStatement<Boolean> {
-
-    boolean getValue();
+    default boolean getValue() {
+        return argument().booleanValue();
+    }
 }
index 787709ebc47e8b13c9caafe57afcda3960b93f71..659a350e126845118fdf27374550dbedb640b360 100644 (file)
@@ -17,9 +17,4 @@ final class OpenConfigVersionStatementImpl extends AbstractDeclaredStatement<Sem
     OpenConfigVersionStatementImpl(final StmtContext<SemVer, OpenConfigVersionStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public SemVer getArgument() {
-        return argument();
-    }
 }
index 629f1043f342fbff39521620d07daabe1a844f98..f6c28f072531b8638bcaee4d075979fc8bc647b1 100644 (file)
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.BodyGroup;
-import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
-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.LinkageGroup;
-import org.opendaylight.yangtools.yang.model.api.stmt.MetaGroup;
-import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionGroup;
-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.TypedefStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.BodyDeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.LinkageDeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.MetaDeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RevisionAwareDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 public abstract class AbstractRootStatement<T extends DeclaredStatement<String>>
-        extends AbstractDeclaredStatement<String> implements LinkageGroup, MetaGroup, RevisionGroup, BodyGroup {
+        extends AbstractDeclaredStatement<String> implements LinkageDeclaredStatement, MetaDeclaredStatement<String>,
+        RevisionAwareDeclaredStatement, BodyDeclaredStatement {
 
     protected AbstractRootStatement(final StmtContext<String, T,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends ImportStatement> getImports() {
-        return allDeclared(ImportStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends IncludeStatement> getIncludes() {
-        return allDeclared(IncludeStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public final OrganizationStatement getOrganization() {
-        return firstDeclared(OrganizationStatement.class);
-    }
-
-    @Override
-    public final ContactStatement getContact() {
-        return firstDeclared(ContactStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends RevisionStatement> getRevisions() {
-        return allDeclared(RevisionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends ExtensionStatement> getExtensions() {
-        return allDeclared(ExtensionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends FeatureStatement> getFeatures() {
-        return allDeclared(FeatureStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends IdentityStatement> getIdentities() {
-        return allDeclared(IdentityStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends AugmentStatement> getAugments() {
-        return allDeclared(AugmentStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends RpcStatement> getRpcs() {
-        return allDeclared(RpcStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends NotificationStatement> getNotifications() {
-        return allDeclared(NotificationStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public final Collection<? extends DeviationStatement> getDeviations() {
-        return allDeclared(DeviationStatement.class);
-    }
 }
index bd75192d08049b5204dc92ec2322176e16f3e9a6..f0d3155aba1ec0fa5a968a1630e2b70875e4ddff 100644 (file)
@@ -7,75 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.action;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 final class ActionStatementImpl extends AbstractDeclaredStatement<QName> implements ActionStatement {
-    ActionStatementImpl(final StmtContext<QName,ActionStatement, ?> context) {
+    ActionStatementImpl(final StmtContext<QName, ActionStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public InputStatement getInput() {
-        return firstDeclared(InputStatement.class);
-    }
-
-    @Override
-    public OutputStatement getOutput() {
-        return firstDeclared(OutputStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
 }
index e7b61a9914fdcda10c23bb0eac43bd82c209532d..6948d151d5f60d629bd86a3ae3af138c972aa8ea 100644 (file)
@@ -8,16 +8,8 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anydata;
 
 import com.google.common.annotations.Beta;
-import java.util.Collection;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -29,44 +21,4 @@ final class AnydataStatementImpl extends AbstractDeclaredStatement<QName> implem
     AnydataStatementImpl(final StmtContext<QName, AnydataStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public MandatoryStatement getMandatory() {
-        return firstDeclared(MandatoryStatement.class);
-    }
 }
index 930c802b4fa81bee195d61fed1e46432e6896782..ae94414f6b8dc60867541fd248bae8c4ebc00036 100644 (file)
@@ -7,17 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anyxml;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -25,47 +16,4 @@ final class AnyxmlStatementImpl extends AbstractDeclaredStatement<QName> impleme
     AnyxmlStatementImpl(final StmtContext<QName, AnyxmlStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public MandatoryStatement getMandatory() {
-        return firstDeclared(MandatoryStatement.class);
-    }
 }
index 09eb130a445e5b1b77408253aaffb42082105db4..41dbe5857eafe922679f8273aff6cf8e6d357531 100644 (file)
@@ -7,10 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.argument;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -18,15 +16,4 @@ final class ArgumentStatementImpl extends AbstractDeclaredStatement<QName> imple
     ArgumentStatementImpl(final StmtContext<QName, ArgumentStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public YinElementStatement getYinElement() {
-        return firstDeclared(YinElementStatement.class);
-    }
 }
index ae0b80a126bbd766c37dc0db6f5ee8c9a6e45cd5..6ffa639218b8e4564f6e281b854a431252f7c4b5 100644 (file)
@@ -7,20 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -28,64 +16,4 @@ final class AugmentStatementImpl extends AbstractDeclaredStatement<SchemaNodeIde
     AugmentStatementImpl(final StmtContext<SchemaNodeIdentifier, AugmentStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public SchemaNodeIdentifier getTargetNode() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends ActionStatement> getActions() {
-        return allDeclared(ActionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends NotificationStatement> getNotifications() {
-        return allDeclared(NotificationStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends CaseStatement> getCases() {
-        return allDeclared(CaseStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
 }
index 85ef21fa95e7a36da802fa6f61eca5271d27e54f..15594f9280db199afe567c27683270ecb9620ead 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.base;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -17,10 +16,4 @@ final class BaseStatementImpl extends AbstractDeclaredStatement<QName> implement
     BaseStatementImpl(final StmtContext<QName, BaseStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
 }
index cd14861df3c61743330ca4108de49df860d489e3..64959136b58545badcbf01803d77408b9943979b 100644 (file)
@@ -7,9 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.belongs_to;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -18,16 +16,4 @@ final class BelongsToStatementImpl extends AbstractDeclaredStatement<String>
     BelongsToStatementImpl(final StmtContext<String, BelongsToStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getModule() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public PrefixStatement getPrefix() {
-        return firstDeclared(PrefixStatement.class);
-    }
 }
index db86f01644de5af0a7285417b161a63a5592c531..bbb3b5dd7daa2eb0cb8745ff97b3867dc86e9836 100644 (file)
@@ -7,15 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.bit;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -23,36 +16,4 @@ final class BitStatementImpl extends AbstractDeclaredStatement<QName> implements
     BitStatementImpl(final StmtContext<QName, BitStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument().getLocalName();
-    }
-
-    @Override
-    public PositionStatement getPosition() {
-        return firstDeclared(PositionStatement.class);
-    }
 }
index 5020493b5e5dbddf61e03d0a7d138478b4e48177..863ca708f5b43aa389c19a8d660290cbc1e30ea7 100644 (file)
@@ -7,17 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -25,45 +16,4 @@ final class CaseStatementImpl extends AbstractDeclaredStatement<QName> implement
     CaseStatementImpl(final StmtContext<QName, CaseStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index 4fa2b09d104cb64de4d7ff8bca7b690ab2c6af22..f985bb8b55e313626ef758339c615fb398ef7419 100644 (file)
@@ -7,19 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.choice;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -28,57 +17,4 @@ final class ChoiceStatementImpl extends AbstractDeclaredStatement<QName>
     ChoiceStatementImpl(final StmtContext<QName, ChoiceStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Nullable
-    @Override
-    public DefaultStatement getDefault() {
-        return firstDeclared(DefaultStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public MandatoryStatement getMandatory() {
-        return firstDeclared(MandatoryStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends CaseStatement> getCases() {
-        return allDeclared(CaseStatement.class);
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index 82be7d7b3f1ebd68ebc783765f20d8dcd5045837..30895ac31252e56bc2462d50d44eeed40e2cf0f2 100644 (file)
@@ -15,9 +15,4 @@ final class ConfigStatementImpl extends AbstractDeclaredStatement<Boolean> imple
     ConfigStatementImpl(final StmtContext<Boolean, ConfigStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public boolean getValue() {
-        return argument().booleanValue();
-    }
 }
index 6f4051e865d056c51364034d0693a0bcb5fd1844..41e751a1d9cd9de49c02ed96b8d426a10d5276a0 100644 (file)
@@ -21,8 +21,8 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
 abstract class EmptyConfigStatement implements ConfigStatement {
     static final ConfigStatement FALSE = new EmptyConfigStatement() {
         @Override
-        public boolean getValue() {
-            return false;
+        public Boolean argument() {
+            return Boolean.FALSE;
         }
 
         @Override
@@ -33,8 +33,8 @@ abstract class EmptyConfigStatement implements ConfigStatement {
 
     static final ConfigStatement TRUE = new EmptyConfigStatement() {
         @Override
-        public boolean getValue() {
-            return true;
+        public Boolean argument() {
+            return Boolean.TRUE;
         }
 
         @Override
@@ -62,11 +62,6 @@ abstract class EmptyConfigStatement implements ConfigStatement {
         return Boolean.toString(getValue());
     }
 
-    @Override
-    public final Boolean argument() {
-        return Boolean.valueOf(getValue());
-    }
-
     @Nonnull
     @Override
     public final StatementSource getStatementSource() {
index 5f087b9c58427a462728d91bf04e14f6f0fe0427..be618e6fe8d6ac521063d78837da915cd83d88fa 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.contact;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContactStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class ContactStatementImpl extends AbstractDeclaredStatement<String> imple
     ContactStatementImpl(final StmtContext<String, ContactStatement,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getText() {
-        return rawArgument();
-    }
 }
index 42e6e48e0b078c8e45e1a9d1ab98a034cbd37dcd..412079d1d35c3f48501de52e19eb959d54a368fe 100644 (file)
@@ -7,22 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.container;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -30,75 +16,4 @@ final class ContainerStatementImpl extends AbstractDeclaredStatement<QName> impl
     ContainerStatementImpl(final StmtContext<QName, ContainerStatement,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Override
-    public PresenceStatement getPresence() {
-        return firstDeclared(PresenceStatement.class);
-    }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends ActionStatement> getActions() {
-        return allDeclared(ActionStatement.class);
-    }
-
-    @Override
-    public Collection<? extends NotificationStatement> getNotifications() {
-        return allDeclared(NotificationStatement.class);
-    }
 }
index f2d04ba8cd3cc72591e8f298ef63e136df185fba..2ad75aa8cdfbddd7bcb9fc8414c492fbf4c88b34 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.default_;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -17,10 +16,4 @@ final class DefaultStatementImpl extends AbstractDeclaredStatement<String> imple
     DefaultStatementImpl(final StmtContext<String, DefaultStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return rawArgument();
-    }
 }
index 29a137161fab49d146c78f824a24395390d3df90..a61f7a823c431b06c7a53ab638c1add2ceeaf03c 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.description;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class DescriptionStatementImpl extends AbstractDeclaredStatement<String> i
     DescriptionStatementImpl(final StmtContext<String, DescriptionStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getText() {
-        return rawArgument();
-    }
 }
index 3a0274748f9285e738a48c677fa766ef58a1ac15..d8d57cc70fc2dead9bed8f3151201840c4a52a9a 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.DeviateKind;
 import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -17,10 +16,4 @@ final class DeviateStatementImpl extends AbstractDeclaredStatement<DeviateKind>
     DeviateStatementImpl(final StmtContext<DeviateKind, DeviateStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public DeviateKind getValue() {
-        return argument();
-    }
 }
index a6805ca6a54e153c47311f391400dca93a3fb248..7e7f73defa784366522d64157a7babf5d5e7df7e 100644 (file)
@@ -7,13 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -23,28 +17,4 @@ final class DeviationStatementImpl extends AbstractDeclaredStatement<SchemaNodeI
     DeviationStatementImpl(final StmtContext<SchemaNodeIdentifier, DeviationStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public SchemaNodeIdentifier getTargetNode() {
-        return argument();
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DeviateStatement> getDeviateStatements() {
-        return allDeclared(DeviateStatement.class);
-    }
 }
index 89e9b2ed1a93cd3e7b66ff93f359e2c362bc81d6..b2867ada576f2ac1485be8f3d54610c6a6b704a4 100644 (file)
@@ -7,14 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ValueStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -22,36 +15,4 @@ final class EnumStatementImpl extends AbstractDeclaredStatement<String> implemen
     EnumStatementImpl(final StmtContext<String, EnumStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Override
-    public ValueStatement getValue() {
-        return firstDeclared(ValueStatement.class);
-    }
 }
index c9c0bccac6998f7bf7ddeed8e59fa57f9ce214bc..b7916464edb02a2eea03e46888535b0dd5f462fd 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.error_message;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class ErrorMessageStatementImpl extends AbstractDeclaredStatement<String>
     ErrorMessageStatementImpl(final StmtContext<String, ErrorMessageStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return argument();
-    }
 }
index 69534ea403fb9c8251ac53418ada2efe836788d6..97e663d4516bfe38effcd533092d72b9b434657a 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension;
 
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -20,24 +16,4 @@ final class ExtensionStatementImpl extends AbstractDeclaredStatement<QName> impl
     ExtensionStatementImpl(final StmtContext<QName, ExtensionStatement,?> context) {
         super(context);
     }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public ArgumentStatement getArgument() {
-        return firstDeclared(ArgumentStatement.class);
-    }
 }
index fc97122650ff1839a63851301aae973ad16320eb..e60ccdf22258093b7b12244548f845c80b075b8a 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension;
 
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class UnrecognizedStatementImpl extends AbstractDeclaredStatement<String>
     UnrecognizedStatementImpl(final StmtContext<String, ?, ?> context) {
         super(context);
     }
-
-    @Nullable
-    @Override
-    public String getArgument() {
-        return argument();
-    }
 }
index 7d039ac903688f788d67de21e60b21fd0ac39a1c..fe43dfe7bbfd27ed4319b190c3b65a84ec696b5d 100644 (file)
@@ -7,14 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.feature;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -22,32 +16,4 @@ final class FeatureStatementImpl extends AbstractDeclaredStatement<QName> implem
     FeatureStatementImpl(final StmtContext<QName, FeatureStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
 }
index d1728b4d2e254a3fe370db83552615f2893a6774..e012f3b89dea6de45ce438d86b43c76b27f9e060 100644 (file)
@@ -15,9 +15,4 @@ final class FractionDigitsStatementImpl extends AbstractDeclaredStatement<Intege
     FractionDigitsStatementImpl(final StmtContext<Integer, FractionDigitsStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public int getValue() {
-        return argument();
-    }
 }
index e05f026b21cb952ad738b406eb48902073ae79ad..bd86dbcd050a8c402ee55462a55b98612ff446f9 100644 (file)
@@ -7,17 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.grouping;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -26,54 +17,4 @@ public class GroupingStatementImpl extends AbstractDeclaredStatement<QName>
     GroupingStatementImpl(final StmtContext<QName, GroupingStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends ActionStatement> getActions() {
-        return allDeclared(ActionStatement.class);
-    }
-
-    @Override
-    public final Collection<? extends NotificationStatement> getNotifications() {
-        return allDeclared(NotificationStatement.class);
-    }
 }
index c1083692edf1b02f1a37c0e9c3081f77842ba11b..62a0e6bbf00a631ab978c529b4e86e640b761137 100644 (file)
@@ -7,15 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -23,37 +16,4 @@ final class IdentityStatementImpl extends AbstractDeclaredStatement<QName> imple
     IdentityStatementImpl(final StmtContext<QName, IdentityStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends BaseStatement> getBases() {
-        return allDeclared(BaseStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
 }
index eefbe3cb8712e53879dbaf3f52a6c10f274754cf..bb5ddc9f4dd2e43e061224e37b0edd85ef7c3b76 100644 (file)
@@ -7,45 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 final class ImportStatementImpl extends AbstractDeclaredStatement<String> implements ImportStatement {
-
     ImportStatementImpl(final StmtContext<String, ImportStatement,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getModule() {
-        return rawArgument();
-    }
-
-    @Nonnull
-    @Override
-    public PrefixStatement getPrefix() {
-        return firstDeclared(PrefixStatement.class);
-    }
-
-    @Override
-    public RevisionDateStatement getRevisionDate() {
-        return firstDeclared(RevisionDateStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index 1c162be7000fad8280ee50df9b2dcb455c3f91fc..128c8829dc26c1e4beb7dfa5d09b14e9d53e7025 100644 (file)
@@ -7,11 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.include;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -19,25 +15,4 @@ final class IncludeStatementImpl extends AbstractDeclaredStatement<String> imple
     IncludeStatementImpl(final StmtContext<String, IncludeStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getModule() {
-        return argument();
-    }
-
-    @Override
-    public RevisionDateStatement getRevisionDate() {
-        return firstDeclared(RevisionDateStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index b122ccb67dd8d2a6ce728ad214bdaab9aa0cb06d..870a006e3374aa4c91e545b2b7134a24810b90d1 100644 (file)
@@ -7,14 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -22,28 +16,4 @@ final class InputStatementImpl extends AbstractDeclaredStatement<QName> implemen
     InputStatementImpl(final StmtContext<QName, InputStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
 }
index b1b137e65475ff0c0129458f8d8f8d1d8961ca4e..e88bf2d664e808dbe7bc14b9fde23f49c9c706a4 100644 (file)
@@ -7,21 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -29,69 +16,4 @@ final class LeafStatementImpl extends AbstractDeclaredStatement<QName> implement
     LeafStatementImpl(final StmtContext<QName, LeafStatement, ?> context) {
         super(context);
     }
-
-    @Nullable
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DefaultStatement getDefault() {
-        return firstDeclared(DefaultStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public MandatoryStatement getMandatory() {
-        return firstDeclared(MandatoryStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public TypeStatement getType() {
-        return firstDeclared(TypeStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public UnitsStatement getUnits() {
-        return firstDeclared(UnitsStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
 }
index 9c4d0cea0e95488b44c6c2f72cd76b07c6516170..2063141abea56aa194975e760de1adaedbaf3142 100644 (file)
@@ -7,23 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
-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.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -31,75 +16,4 @@ final class LeafListStatementImpl extends AbstractDeclaredStatement<QName> imple
     LeafListStatementImpl(final StmtContext<QName, LeafListStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public Collection<? extends DefaultStatement> getDefaults() {
-        return allDeclared(DefaultStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public MinElementsStatement getMinElements() {
-        return firstDeclared(MinElementsStatement.class);
-    }
-
-    @Override
-    public MaxElementsStatement getMaxElements() {
-        return firstDeclared(MaxElementsStatement.class);
-    }
-
-    @Override
-    public OrderedByStatement getOrderedBy() {
-        return firstDeclared(OrderedByStatement.class);
-    }
-
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public TypeStatement getType() {
-        return firstDeclared(TypeStatement.class);
-    }
-
-    @Override
-    public UnitsStatement getUnits() {
-        return firstDeclared(UnitsStatement.class);
-    }
 }
index f14abca44b66fac4dc082d291d06facafda5b0a2..fdcaef650eb7d5966ab2f30cea97af2a30d84e6c 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.length;
 
 import java.util.List;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -21,24 +17,4 @@ final class LengthStatementImpl extends AbstractDeclaredStatement<List<ValueRang
     LengthStatementImpl(final StmtContext<List<ValueRange>, LengthStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public ErrorAppTagStatement getErrorAppTagStatement() {
-        return firstDeclared(ErrorAppTagStatement.class);
-    }
-
-    @Override
-    public ErrorMessageStatement getErrorMessageStatement() {
-        return firstDeclared(ErrorMessageStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index f00e33ff4cb5c392305f9c74e9133dfab70d10a7..7d2662eaf87f6e66583e61f941fe69a4e5ae9c07 100644 (file)
@@ -7,27 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.KeyStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
-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.MustStatement;
-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.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-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.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -35,100 +16,4 @@ final class ListStatementImpl extends AbstractDeclaredStatement<QName> implement
     ListStatementImpl(final StmtContext<QName, ListStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public MinElementsStatement getMinElements() {
-        return firstDeclared(MinElementsStatement.class);
-    }
-
-    @Override
-    public MaxElementsStatement getMaxElements() {
-        return firstDeclared(MaxElementsStatement.class);
-    }
-
-    @Override
-    public OrderedByStatement getOrderedBy() {
-        return firstDeclared(OrderedByStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Override
-    public KeyStatement getKey() {
-        return firstDeclared(KeyStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends UniqueStatement> getUnique() {
-        return allDeclared(UniqueStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends ActionStatement> getActions() {
-        return allDeclared(ActionStatement.class);
-    }
-
-    @Override
-    public Collection<? extends NotificationStatement> getNotifications() {
-        return allDeclared(NotificationStatement.class);
-    }
 }
index 23d7e2f05d2ea798d369be199b6a68928d617d6d..d1e94a1a3cac7e7493a4d7bb65d3de90e47370b7 100644 (file)
@@ -20,9 +20,8 @@ import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
 
 abstract class EmptyMandatoryStatement implements MandatoryStatement {
     static final MandatoryStatement FALSE = new EmptyMandatoryStatement() {
-        @Nonnull
         @Override
-        public Boolean getValue() {
+        public Boolean argument() {
             return Boolean.FALSE;
         }
 
@@ -33,9 +32,8 @@ abstract class EmptyMandatoryStatement implements MandatoryStatement {
     };
 
     static final MandatoryStatement TRUE = new EmptyMandatoryStatement() {
-        @Nonnull
         @Override
-        public Boolean getValue() {
+        public Boolean argument() {
             return Boolean.TRUE;
         }
 
@@ -64,11 +62,6 @@ abstract class EmptyMandatoryStatement implements MandatoryStatement {
         return getValue().toString();
     }
 
-    @Override
-    public final Boolean argument() {
-        return getValue();
-    }
-
     @Nonnull
     @Override
     public final StatementSource getStatementSource() {
index d0c67963b1ba5b595417a8b539819ed5bc77400b..68be40fbe387490407b19718aca23ce1aba41323 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.mandatory;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,9 +15,4 @@ final class MandatoryStatementImpl extends AbstractDeclaredStatement<Boolean> im
     MandatoryStatementImpl(final StmtContext<Boolean, MandatoryStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    @Nonnull public Boolean getValue() {
-        return argument();
-    }
 }
index 0c3b89812f9ad135e64c68098a844c76f5e2654d..59077dcf796f17547b865dee341e8cfa7ff66b0d 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.max_elements;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.MaxElementsStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class MaxElementsStatementImpl extends AbstractDeclaredStatement<String> i
     MaxElementsStatementImpl(final StmtContext<String, MaxElementsStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return argument();
-    }
 }
index ab862ead1277058a1cd502a39ede7369d0efaa16..cfbb2dc44b5bff3bca4e4f5d7ef515e8a007e6b2 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.min_elements;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class MinElementsStatementImpl extends AbstractDeclaredStatement<Integer>
     MinElementsStatementImpl(final StmtContext<Integer, MinElementsStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public Integer getValue() {
-        return argument();
-    }
 }
index ae648881d3f03886cf3c90bf4d2da37aea6c325b..99e381a1969e3f182889be7f7f049c3f873d1a2e 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.modifier;
 
 import com.google.common.annotations.Beta;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
 import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -22,10 +21,4 @@ final class ModifierStatementImpl extends AbstractDeclaredStatement<ModifierKind
     ModifierStatementImpl(final StmtContext<ModifierKind, ModifierStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public ModifierKind getValue() {
-        return argument();
-    }
 }
index e100b0fc4fa6f360577f0910a672eea097dcee2b..e358e6b01962fa81898d4f19af2efc2fe55f4ce7 100644 (file)
@@ -7,11 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractRootStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -19,28 +15,4 @@ final class ModuleStatementImpl extends AbstractRootStatement<ModuleStatement> i
     ModuleStatementImpl(final StmtContext<String, ModuleStatement,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return rawArgument();
-    }
-
-    @Override
-    public YangVersionStatement getYangVersion() {
-        return firstDeclared(YangVersionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public NamespaceStatement getNamespace() {
-        return firstDeclared(NamespaceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public PrefixStatement getPrefix() {
-        return firstDeclared(PrefixStatement.class);
-    }
-
 }
index 1d448a4553a9e5e887603706eb7ad43e6c2c7e96..31c6e3cd92f6d04da1ade751ac33b36af7abe9ce 100644 (file)
@@ -7,14 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -22,34 +16,4 @@ final class MustStatementImpl extends AbstractDeclaredStatement<RevisionAwareXPa
     MustStatementImpl(final StmtContext<RevisionAwareXPath, MustStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public RevisionAwareXPath getCondition() {
-        return argument();
-    }
-
-    @Nullable
-    @Override
-    public ErrorAppTagStatement getErrorAppTagStatement() {
-        return firstDeclared(ErrorAppTagStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ErrorMessageStatement getErrorMessageStatement() {
-        return firstDeclared(ErrorMessageStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index e895a9591129b41f8da26da3b29bd9aa7f606e9f..414213e383eadfd2e8198b8c4b5e6ecc16869583 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.namespace;
 
 import java.net.URI;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -17,10 +16,4 @@ final class NamespaceStatementImpl extends AbstractDeclaredStatement<URI> implem
     NamespaceStatementImpl(final StmtContext<URI, NamespaceStatement,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public URI getUri() {
-        return argument();
-    }
 }
index 54ed933ae7a5f95cc7b2548cba876dbe1a0d228e..c25a595e2c3337a0a790564bf3f498e498b02ba0 100644 (file)
@@ -7,19 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -27,58 +16,4 @@ final class NotificationStatementImpl extends AbstractDeclaredStatement<QName> i
     NotificationStatementImpl(final StmtContext<QName, NotificationStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
 }
index 2629b81206a8f0c3c0db8cfad52fcedd0cd27cca..266b2558f0e22eeab46f8e0c9369cb59c1987640 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ordered_by;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class OrderedByStatementImpl extends AbstractDeclaredStatement<String> imp
     OrderedByStatementImpl(final StmtContext<String, OrderedByStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return argument();
-    }
 }
index dca19cacf1d9a1d20f01bd3dca28f7c4ef9b2acb..75738c5700b3a1dda03a3073eeb5611c80d28b40 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.organization;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class OrganizationStatementImpl extends AbstractDeclaredStatement<String>
     OrganizationStatementImpl(final StmtContext<String, OrganizationStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getText() {
-        return argument();
-    }
 }
index 3b73a17df33698b095b56290ef8de88d4e434de5..b1b8fccf4f038051e252900c59e946ed076844ff 100644 (file)
@@ -7,14 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -22,28 +16,4 @@ final class OutputStatementImpl extends AbstractDeclaredStatement<QName> impleme
     OutputStatementImpl(final StmtContext<QName, OutputStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DataDefinitionStatement> getDataDefinitions() {
-        return allDeclared(DataDefinitionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
 }
index bc0df76b04b1e007ce6e2587988f38facca584f2..678e4aa5d0704fda8e99e30e80019aae19d6da6f 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -17,10 +16,4 @@ final class PathStatementImpl extends AbstractDeclaredStatement<RevisionAwareXPa
     PathStatementImpl(final StmtContext<RevisionAwareXPath, PathStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return rawArgument();
-    }
 }
index 4da40d85e4c754bff6acb545ef68200f0e3b7bd6..27f8aa2d30aaf426123f071e08bc1b5fb7435599 100644 (file)
@@ -7,51 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 public class PatternStatementImpl extends AbstractDeclaredStatement<PatternConstraint> implements PatternStatement {
-
     protected PatternStatementImpl(final StmtContext<PatternConstraint, PatternStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public ErrorAppTagStatement getErrorAppTagStatement() {
-        return firstDeclared(ErrorAppTagStatement.class);
-    }
-
-    @Override
-    public ErrorMessageStatement getErrorMessageStatement() {
-        return firstDeclared(ErrorMessageStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ModifierStatement getModifierStatement() {
-        return firstDeclared(ModifierStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public PatternConstraint getValue() {
-        return argument();
-    }
 }
index d206ff677d0644923a0266dc93890dc7ae7e9fce..d03de21e8465bee866f151fe0beda6b7622e675c 100644 (file)
@@ -15,9 +15,4 @@ final class PositionStatementImpl extends AbstractDeclaredStatement<Long> implem
     PositionStatementImpl(final StmtContext<Long, PositionStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public long getValue() {
-        return argument();
-    }
 }
index c338e2c621f271aa05b7c5b8ce6c342f67da8ef3..4c1816e639c6a6f63cd757299897564fde9ac2a5 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class PrefixStatementImpl extends AbstractDeclaredStatement<String> implem
     PrefixStatementImpl(final StmtContext<String, PrefixStatement,?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return rawArgument();
-    }
 }
index 0bce15f117a3d112060a05318e80aed38f769c5c..12e06f008b3e7cd4d754a43c7e6608d8331b7fa1 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.presence;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class PresenceStatementImpl extends AbstractDeclaredStatement<String> impl
     PresenceStatementImpl(final StmtContext<String, PresenceStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getValue() {
-        return argument();
-    }
 }
index 5050af1fdfb782c0a9134ad00b762ee6c2c6f29f..c7150672155265e17b0a708459731ff445cc255a 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range;
 
 import java.util.List;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement;
 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.ValueRange;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -21,24 +17,4 @@ final class RangeStatementImpl extends AbstractDeclaredStatement<List<ValueRange
     RangeStatementImpl(final StmtContext<List<ValueRange>, RangeStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public ErrorAppTagStatement getErrorAppTagStatement() {
-        return firstDeclared(ErrorAppTagStatement.class);
-    }
-
-    @Override
-    public ErrorMessageStatement getErrorMessageStatement() {
-        return firstDeclared(ErrorMessageStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index 6c5a1e19a841f2428879965347269d2781f17c4e..6e19e7c492cc3d704a2e6a02b76fa67f3f0efaa2 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.reference;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class ReferenceStatementImpl extends AbstractDeclaredStatement<String> imp
     ReferenceStatementImpl(final StmtContext<String, ReferenceStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getText() {
-        return rawArgument();
-    }
 }
index 597e9e99bc69e550dbf3f871b330e3d07c0ff6f6..6f8ee8e9c3ae2152d10490e2daf7b985ae36edc8 100644 (file)
@@ -7,18 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-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.MustStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement;
-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.SchemaNodeIdentifier;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -28,63 +16,4 @@ final class RefineStatementImpl extends AbstractDeclaredStatement<SchemaNodeIden
     RefineStatementImpl(final StmtContext<SchemaNodeIdentifier, RefineStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public String getTargetNode() {
-        return rawArgument();
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends MustStatement> getMusts() {
-        return allDeclared(MustStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends DefaultStatement> getDefaults() {
-        return allDeclared(DefaultStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public PresenceStatement getPresence() {
-        return firstDeclared(PresenceStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public MandatoryStatement getMandatory() {
-        return firstDeclared(MandatoryStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public MinElementsStatement getMinElements() {
-        return firstDeclared(MinElementsStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public MaxElementsStatement getMaxElements() {
-        return firstDeclared(MaxElementsStatement.class);
-    }
 }
index 708bab32af372cb1a3853d530a45bd3e7f995b8e..ff08ebcbbb606e255449a8caf0ac856ac6a13bf6 100644 (file)
@@ -16,9 +16,4 @@ final class RequireInstanceStatementImpl extends AbstractDeclaredStatement<Boole
     RequireInstanceStatementImpl(final StmtContext<Boolean, RequireInstanceStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public boolean getValue() {
-        return argument().booleanValue();
-    }
 }
index 0762a1799d43324a337e31f82ec542d23d22cba1..a9616d1b8ecf234f5125e186592e25bca4e0428e 100644 (file)
@@ -8,10 +8,7 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.Revision;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -26,16 +23,4 @@ final class RevisionStatementImpl extends AbstractDeclaredStatement<Revision> im
     public Revision getDate() {
         return argument();
     }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index 920113d06f028436d7ef3880f0c96984075767e1..4b6d0cf9557d44d048775c271c30c1474e47e3a2 100644 (file)
@@ -16,9 +16,4 @@ final class RevisionDateStatementImpl extends AbstractDeclaredStatement<Revision
     RevisionDateStatementImpl(final StmtContext<Revision, RevisionDateStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public Revision getDate() {
-        return argument();
-    }
 }
index b0a5f1e025b2c6f820293940aeefd1eada0671a9..139ff27011134d2684c2bea17695dd53b68c6e23 100644 (file)
@@ -7,19 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -27,55 +16,4 @@ final class RpcStatementImpl extends AbstractDeclaredStatement<QName> implements
     RpcStatementImpl(final StmtContext<QName, RpcStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypedefStatement> getTypedefs() {
-        return allDeclared(TypedefStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends GroupingStatement> getGroupings() {
-        return allDeclared(GroupingStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Override
-    public InputStatement getInput() {
-        return firstDeclared(InputStatement.class);
-    }
-
-    @Override
-    public OutputStatement getOutput() {
-        return firstDeclared(OutputStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
 }
index a4b35fa2bc8ce71cd5b75dd907596d3897e33209..59ad68c20d94bb901df9d48d75ff952a1d4c3680 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.status;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -17,10 +16,4 @@ final class StatusStatementImpl extends AbstractDeclaredStatement<Status> implem
     StatusStatementImpl(final StmtContext<Status, StatusStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public Status getValue() {
-        return argument();
-    }
 }
index b2003b222b30de92f4ace32be11de1a0693aa111..514f57c41ccdcf8a4d4467c9454f9a838483666a 100644 (file)
@@ -7,10 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractRootStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -18,21 +15,4 @@ final class SubmoduleStatementImpl extends AbstractRootStatement<SubmoduleStatem
     SubmoduleStatementImpl(final StmtContext<String, SubmoduleStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return rawArgument();
-    }
-
-    @Override
-    public YangVersionStatement getYangVersion() {
-        return firstDeclared(YangVersionStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public BelongsToStatement getBelongsTo() {
-        return firstDeclared(BelongsToStatement.class);
-    }
 }
index 606d01cef763f224de1d5c4e497075e16b31c9ad..b771f3fd5ea0238d6462f5409c2f24c498ffed0b 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.BitsSpecification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,16 +15,4 @@ public class BitsSpecificationImpl extends AbstractDeclaredStatement<String> imp
     protected BitsSpecificationImpl(final StmtContext<String, BitsSpecification, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends BitStatement> getBits() {
-        return allDeclared(BitStatement.class);
-    }
 }
index 59cdafbed03eef55d6b3456d9743c266b44382f2..86830fee26ce1c8ba8791f82870be05049ed6b9f 100644 (file)
@@ -86,12 +86,6 @@ final class BuiltinTypeStatement implements TypeStatement {
         return YangStmtMapping.TYPE;
     }
 
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument;
-    }
-
     @Nonnull
     @Override
     public StatementSource getStatementSource() {
index 74cd94b92d861fda310a70ed7b022ffdf071f62e..d5d050679622963b36e24b8d9e1bc49bfc1b7ce2 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.Decimal64Specification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,21 +15,4 @@ final class Decimal64SpecificationImpl extends AbstractDeclaredStatement<String>
     Decimal64SpecificationImpl(final StmtContext<String, Decimal64Specification, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public FractionDigitsStatement getFractionDigits() {
-        return firstDeclared(FractionDigitsStatement.class);
-    }
-
-    @Override
-    public RangeStatement getRange() {
-        return firstDeclared(RangeStatement.class);
-    }
 }
index add9bed0edc72e3d3175dea14ec9ebc865506ad3..2d760f1b7fded00c34f4dc615ec3025566bc9c07 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.EnumSpecification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,16 +15,4 @@ final class EnumSpecificationImpl extends AbstractDeclaredStatement<String> impl
     EnumSpecificationImpl(final StmtContext<String, EnumSpecification, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends EnumStatement> getEnums() {
-        return allDeclared(EnumStatement.class);
-    }
 }
index 422ab90dfc30d993499e6212b27b6c00475ebbd5..02ba0bb17dfe9437bec488ef0fcc671c9bd6737d 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.BaseStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.IdentityRefSpecification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,16 +15,4 @@ final class IdentityRefSpecificationImpl extends AbstractDeclaredStatement<Strin
     IdentityRefSpecificationImpl(final StmtContext<String, IdentityRefSpecification, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends BaseStatement> getBases() {
-        return allDeclared(BaseStatement.class);
-    }
 }
index 0bd0bef98f0ac37e48158b271c48adf4388ea2a7..b6c9f023413d464a34c4d888175a2372c979d020 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.InstanceIdentifierSpecification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,15 +16,4 @@ final class InstanceIdentifierSpecificationImpl extends AbstractDeclaredStatemen
     InstanceIdentifierSpecificationImpl(final StmtContext<String, InstanceIdentifierSpecification, ?> ctx) {
         super(ctx);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Override
-    public RequireInstanceStatement getRequireInstance() {
-        return firstDeclared(RequireInstanceStatement.class);
-    }
 }
index 47413d9a3e2edfc3ebba398d5222fefb7cc14b26..27dd08fa5e91fdc27eaee468e7c5c6f1172baea4 100644 (file)
@@ -7,10 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.LeafrefSpecification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -19,23 +15,4 @@ final class LeafrefSpecificationImpl extends AbstractDeclaredStatement<String> i
     LeafrefSpecificationImpl(final StmtContext<String, LeafrefSpecification, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public PathStatement getPath() {
-        return firstDeclared(PathStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public RequireInstanceStatement getRequireInstance() {
-        return firstDeclared(RequireInstanceStatement.class);
-    }
-
 }
index 564249e647f29c087c203e8a748e5c242e0f5aa2..5de2822be70dc1f247a95fa0f21e7ba0b6edc0da 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.NumericalRestrictions;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,16 +16,4 @@ final class NumericalRestrictionsImpl extends AbstractDeclaredStatement<String>
     NumericalRestrictionsImpl(final StmtContext<String, NumericalRestrictions, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public RangeStatement getRange() {
-        return firstDeclared(RangeStatement.class);
-    }
 }
index 3913569f935f3930eebb7e6f342bfe4dbe89b645..ef749e45e75fcb1804438f3637c763f2d13fa2d6 100644 (file)
@@ -7,10 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -21,21 +17,4 @@ final class StringRestrictionsImpl extends AbstractDeclaredStatement<String> imp
     StringRestrictionsImpl(final StmtContext<String, StringRestrictions, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Override
-    public LengthStatement getLength() {
-        return firstDeclared(LengthStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends PatternStatement> getPatterns() {
-        return allDeclared(PatternStatement.class);
-    }
 }
index b02166922f75c1b48792d51e5a892a685505d738..091208c99348fa0813103f1024db9d13a86abfc4 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class TypeStatementImpl extends AbstractDeclaredStatement<String> implemen
     TypeStatementImpl(final StmtContext<String, TypeStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
 }
index bdeba5ba4a095fb43449fa047265e24f40639f2d..833dd04a64a6372d92933a85ac319e70e831e536 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.UnionSpecification;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -18,17 +15,4 @@ final class UnionSpecificationImpl extends AbstractDeclaredStatement<String> imp
     UnionSpecificationImpl(final StmtContext<String, UnionSpecification, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends TypeStatement> getTypes() {
-        return allDeclared(TypeStatement.class);
-    }
-
 }
index cd6ef9330632884799aa4ff2d5127501386b37db..59bb56a42024964cc2091db45626c2d47d8ba030 100644 (file)
@@ -7,16 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
-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.UnitsStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
@@ -24,45 +16,4 @@ final class TypedefStatementImpl extends AbstractDeclaredStatement<QName> implem
     TypedefStatementImpl(final StmtContext<QName, TypedefStatement, ?> context) {
         super(context);
     }
-
-    @Nullable
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public TypeStatement getType() {
-        return firstDeclared(TypeStatement.class);
-    }
-
-    @Override
-    public UnitsStatement getUnits() {
-        return firstDeclared(UnitsStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Nullable
-    @Override
-    public DefaultStatement getDefault() {
-        return firstDeclared(DefaultStatement.class);
-    }
 }
index 6a9f01bc8f45f46c8fd2a96275e4f1e1129a2541..b0ca5d7ee62d46e6f452476e9f4f44643123bd3d 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.units;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -16,10 +15,4 @@ final class UnitsStatementImpl extends AbstractDeclaredStatement<String> impleme
     UnitsStatementImpl(final StmtContext<String, UnitsStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public String getName() {
-        return argument();
-    }
 }
index a7f97db6174e14b1ac0eb25f60be5afdd2226039..1357a5754e05f4a23dc6ec8c7db8fb8ca54c51d2 100644 (file)
@@ -13,22 +13,15 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Optional;
 import java.util.Set;
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement;
-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.SchemaNodeIdentifier;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.SchemaNodeIdentifierBuildNamespace;
 import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -52,50 +45,6 @@ final class UsesStatementImpl extends AbstractDeclaredStatement<QName> implement
         super(context);
     }
 
-    @Nonnull
-    @Override
-    public QName getName() {
-        return argument();
-    }
-
-    @Override
-    public WhenStatement getWhenStatement() {
-        return firstDeclared(WhenStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends IfFeatureStatement> getIfFeatures() {
-        return allDeclared(IfFeatureStatement.class);
-    }
-
-    @Override
-    public StatusStatement getStatus() {
-        return firstDeclared(StatusStatement.class);
-    }
-
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends AugmentStatement> getAugments() {
-        return allDeclared(AugmentStatement.class);
-    }
-
-    @Nonnull
-    @Override
-    public Collection<? extends RefineStatement> getRefines() {
-        return allDeclared(RefineStatement.class);
-    }
-
     /**
      * Copy statements from a grouping to a target node.
      *
index 90b7fcc07f6385223f3a4db113301fb186f49a35..e9d23d111d686689567ecb086819e0f803adeaa5 100644 (file)
@@ -15,9 +15,4 @@ final class ValueStatementImpl extends AbstractDeclaredStatement<Integer> implem
     ValueStatementImpl(final StmtContext<Integer, ValueStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public int getValue() {
-        return argument();
-    }
 }
index d268fbcd7afe0c3ed7f0d823f62c9460c4a5aa19..d58699edc130c8852911cbdc244ef5d5d414ef12 100644 (file)
@@ -7,11 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.when;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -20,22 +16,4 @@ final class WhenStatementImpl extends AbstractDeclaredStatement<RevisionAwareXPa
     WhenStatementImpl(final StmtContext<RevisionAwareXPath, WhenStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public RevisionAwareXPath getCondition() {
-        return argument();
-    }
-
-    @Nullable
-    @Override
-    public DescriptionStatement getDescription() {
-        return firstDeclared(DescriptionStatement.class);
-    }
-
-    @Nullable
-    @Override
-    public ReferenceStatement getReference() {
-        return firstDeclared(ReferenceStatement.class);
-    }
 }
index 556b14125650f5248cbd1d0016d94615b3240b6f..eefb012d0b4b65f8e5a3a3b844df094289a909ca 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.yang_version;
 
-import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.YangVersion;
 import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
@@ -17,10 +16,4 @@ final class YangVersionStatementImpl extends AbstractDeclaredStatement<YangVersi
     YangVersionStatementImpl(final StmtContext<YangVersion, YangVersionStatement, ?> context) {
         super(context);
     }
-
-    @Nonnull
-    @Override
-    public YangVersion getValue() {
-        return argument();
-    }
 }
index e9ae7549b83a453fb3a86cb0ba1e15476e562870..fae4b1f94184f23d62fd542d056f5fc0e6efb39a 100644 (file)
@@ -15,9 +15,4 @@ final class YinElementStatementImpl extends AbstractDeclaredStatement<Boolean> i
     YinElementStatementImpl(final StmtContext<Boolean, YinElementStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public boolean getValue() {
-        return argument().booleanValue();
-    }
 }
index 59e0cd7a3d3fcf4a31684c53236b16ec0851e044..686492e9543c8e0da227cb32cb9b1dd5d0468290 100644 (file)
@@ -20,9 +20,4 @@ final class ThirdPartyExtensionStatementImpl extends AbstractDeclaredStatement<S
     ThirdPartyExtensionStatementImpl(final StmtContext<String, ThirdPartyExtensionStatement, ?> context) {
         super(context);
     }
-
-    @Override
-    public String getArgument() {
-        return argument();
-    }
 }
index 7270c8ff4bf4c7671a72d8c773aef8ec4a6e0df2..cd10de86ca09558d6de0ac9899f5c6fdfb2a5f8e 100644 (file)
@@ -81,7 +81,17 @@ public abstract class AbstractDeclaredStatement<A> implements DeclaredStatement<
         return source;
     }
 
+    /**
+     * Returns collection of explicitly declared child statements, while preserving its original ordering from original
+     * source.
+     *
+     * @param type {@link DeclaredStatement} type
+     * @return Collection of statements, which were explicitly declared in source of model.
+     * @throws NullPointerException if {@code type} is null
+     * @deprecated Use {@link #declaredSubstatements(Class)} instead.
+     */
+    @Deprecated
     protected final <S extends DeclaredStatement<?>> Collection<? extends S> allDeclared(final Class<S> type) {
-        return Collections2.transform(Collections2.filter(substatements, type::isInstance), type::cast);
+        return declaredSubstatements(type);
     }
 }