From 8f8eb19f2917e7d4b3bea918835ac10d077f3930 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 17 Feb 2021 10:38:39 +0100 Subject: [PATCH] Move even more statements Move the next batch of effective statements to yang-model-ri, so they are neatly isolated from the actual parser logic. JIRA: YANGTOOLS-1241 Change-Id: Ib0cce9303cfbd61fbb3d606d7e5b8580fd170e54 Signed-off-by: Robert Varga --- yang/yang-model-ri/pom.xml | 4 + .../src/main/java/module-info.java | 2 + .../model/ri/stmt/EffectiveStatements.java | 225 +++++++++++++++++- .../AbstractIdentityEffectiveStatement.java | 2 +- .../eff}/AbstractLeafEffectiveStatement.java | 5 +- .../eff}/DeclaredInputEffectiveStatement.java | 9 +- .../DeclaredOutputEffectiveStatement.java | 9 +- .../eff}/DeviateEffectiveStatementImpl.java | 6 +- .../eff}/DeviationEffectiveStatementImpl.java | 6 +- .../eff}/EmptyEnumEffectiveStatement.java | 6 +- .../eff}/EmptyIdentityEffectiveStatement.java | 6 +- .../eff}/EmptyLeafEffectiveStatement.java | 6 +- .../eff}/EmptyPatternEffectiveStatement.java | 6 +- .../eff}/EmptyPrefixEffectiveStatement.java | 6 +- .../eff}/EmptyRangeEffectiveStatement.java | 6 +- .../eff}/EmptyRevisionEffectiveStatement.java | 6 +- .../eff}/EmptyUniqueEffectiveStatement.java | 6 +- .../eff}/ExtensionEffectiveStatementImpl.java | 6 +- .../eff}/ImportEffectiveStatementImpl.java | 6 +- .../NotificationEffectiveStatementImpl.java | 8 +- .../eff}/RegularEnumEffectiveStatement.java | 6 +- .../RegularIdentityEffectiveStatement.java | 6 +- .../eff}/RegularLeafEffectiveStatement.java | 8 +- .../RegularPatternEffectiveStatement.java | 6 +- .../eff}/RegularPrefixEffectiveStatement.java | 6 +- .../eff}/RegularRangeEffectiveStatement.java | 6 +- .../RegularRevisionEffectiveStatement.java | 6 +- .../eff}/RegularUniqueEffectiveStatement.java | 6 +- .../impl/eff}/RpcEffectiveStatementImpl.java | 9 +- .../eff}/TypedefEffectiveStatementImpl.java | 6 +- .../UndeclaredInputEffectiveStatement.java | 8 +- .../UndeclaredOutputEffectiveStatement.java | 8 +- .../src/main/java/module-info.java | 20 +- .../rfc7950/reactor/RFC7950Reactors.java | 24 +- .../AbstractDeviateStatementSupport.java | 5 +- .../extension/ExtensionStatementSupport.java | 3 +- .../stmt/import_/ImportStatementSupport.java | 7 +- .../stmt/meta/ActionStatementSupport.java | 2 - .../DeviationStatementSupport.java | 5 +- .../{enum_ => meta}/EnumStatementSupport.java | 6 +- .../IdentityStatementSupport.java | 7 +- .../InputStatementSupport.java | 16 +- .../{leaf => meta}/LeafStatementSupport.java | 12 +- .../OutputStatementSupport.java | 17 +- .../PrefixStatementSupport.java | 6 +- .../RangeStatementSupport.java | 6 +- .../RevisionStatementSupport.java | 6 +- .../{rpc => meta}/RpcStatementSupport.java | 7 +- .../TypedefStatementSupport.java | 5 +- .../UniqueStatementSupport.java | 7 +- .../AbstractNotificationStatementSupport.java | 9 +- .../stmt/pattern/PatternStatementSupport.java | 4 +- 52 files changed, 404 insertions(+), 187 deletions(-) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/AbstractIdentityEffectiveStatement.java (96%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/AbstractLeafEffectiveStatement.java (96%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/DeclaredInputEffectiveStatement.java (84%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/DeclaredOutputEffectiveStatement.java (84%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/DeviateEffectiveStatementImpl.java (94%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/DeviationEffectiveStatementImpl.java (88%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_ => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyEnumEffectiveStatement.java (81%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyIdentityEffectiveStatement.java (79%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyLeafEffectiveStatement.java (80%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyPatternEffectiveStatement.java (78%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyPrefixEffectiveStatement.java (73%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyRangeEffectiveStatement.java (78%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyRevisionEffectiveStatement.java (77%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/EmptyUniqueEffectiveStatement.java (75%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/ExtensionEffectiveStatementImpl.java (95%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_ => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/ImportEffectiveStatementImpl.java (92%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/NotificationEffectiveStatementImpl.java (90%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_ => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularEnumEffectiveStatement.java (85%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularIdentityEffectiveStatement.java (85%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularLeafEffectiveStatement.java (76%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularPatternEffectiveStatement.java (81%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularPrefixEffectiveStatement.java (78%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularRangeEffectiveStatement.java (82%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularRevisionEffectiveStatement.java (81%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RegularUniqueEffectiveStatement.java (80%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/RpcEffectiveStatementImpl.java (80%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/TypedefEffectiveStatementImpl.java (96%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/UndeclaredInputEffectiveStatement.java (86%) rename yang/{yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output => yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff}/UndeclaredOutputEffectiveStatement.java (85%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{deviation => meta}/DeviationStatementSupport.java (95%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{enum_ => meta}/EnumStatementSupport.java (93%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{identity => meta}/IdentityStatementSupport.java (94%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{input => meta}/InputStatementSupport.java (90%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{leaf => meta}/LeafStatementSupport.java (90%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{output => meta}/OutputStatementSupport.java (89%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{prefix => meta}/PrefixStatementSupport.java (91%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{range => meta}/RangeStatementSupport.java (96%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{revision => meta}/RevisionStatementSupport.java (92%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{rpc => meta}/RpcStatementSupport.java (95%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{typedef => meta}/TypedefStatementSupport.java (97%) rename yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/{unique => meta}/UniqueStatementSupport.java (95%) diff --git a/yang/yang-model-ri/pom.xml b/yang/yang-model-ri/pom.xml index b88d6de1bf..7199834a8b 100644 --- a/yang/yang-model-ri/pom.xml +++ b/yang/yang-model-ri/pom.xml @@ -30,5 +30,9 @@ org.opendaylight.yangtools yang-model-spi + + org.opendaylight.yangtools + yang-repo-api + diff --git a/yang/yang-model-ri/src/main/java/module-info.java b/yang/yang-model-ri/src/main/java/module-info.java index 3a6319abf1..379c16e755 100644 --- a/yang/yang-model-ri/src/main/java/module-info.java +++ b/yang/yang-model-ri/src/main/java/module-info.java @@ -13,9 +13,11 @@ module org.opendaylight.yangtools.yang.model.ri { exports org.opendaylight.yangtools.yang.model.ri.type; requires transitive org.opendaylight.yangtools.yang.model.api; + requires transitive org.opendaylight.yangtools.yang.repo.api; requires com.google.common; requires org.opendaylight.yangtools.yang.model.spi; requires org.opendaylight.yangtools.concepts; + requires org.slf4j; // Annotations requires static transitive org.eclipse.jdt.annotation; diff --git a/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java index c43cde66c4..ba54c605ba 100644 --- a/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java @@ -11,6 +11,7 @@ import static com.google.common.base.Preconditions.checkArgument; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.concepts.Immutable; @@ -21,6 +22,9 @@ import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; +import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; +import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ActionEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement; @@ -50,20 +54,36 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DefaultEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DeviateEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DeviationEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.EnumEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement; import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsStatement; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement; import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement; import org.opendaylight.yangtools.yang.model.api.stmt.IncludeEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.LeafEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LengthEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LengthStatement; import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement; @@ -76,25 +96,43 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ModifierEffectiveStatement import org.opendaylight.yangtools.yang.model.api.stmt.ModifierStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NamespaceStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement; import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByStatement; import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.OutputEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PathEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PathStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PositionEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PresenceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PresenceStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionDateStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.RpcEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ValueEffectiveStatement; @@ -105,13 +143,19 @@ import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionEffectiveStatem import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.YinElementEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement; +import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyRequireInstanceStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyStatusStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl.EmptyYangVersionStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.AbstractLeafEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ActionEffectiveStatementImpl; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.AugmentEffectiveStatementImpl; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ChoiceEffectiveStatementImpl; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ContainerEffectiveStatementImpl; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeclaredInputEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeclaredOutputEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeviateEffectiveStatementImpl; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.DeviationEffectiveStatementImpl; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyAnydataEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyAnyxmlEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyArgumentEffectiveStatement; @@ -122,12 +166,15 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyConfigEffecti import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyContactEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyDefaultEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyDescriptionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyEnumEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyErrorAppTagEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyErrorMessageEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyFeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyFractionDigitsEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyIdentityEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyIfFeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyIncludeEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyLeafEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyLengthEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMandatoryEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMaxElementsEffectiveStatement; @@ -137,18 +184,26 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyNamespaceEffe import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyOrderedByEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyOrganizationEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPathEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPatternEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPositionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPrefixEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyPresenceEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRangeEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyReferenceEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRequireInstanceEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRevisionDateEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyRevisionEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyStatusEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyUniqueEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyUnitsEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyValueEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyWhenEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyYangVersionEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyYinElementEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ExtensionEffectiveStatementImpl; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.GroupingEffectiveStatementImpl; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.ImportEffectiveStatementImpl; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.NotificationEffectiveStatementImpl; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularAnydataEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularAnyxmlEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularArgumentEffectiveStatement; @@ -159,12 +214,15 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularConfigEffec import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularContactEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularDefaultEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularDescriptionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularEnumEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularErrorAppTagEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularErrorMessageEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularFeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularFractionDigitsEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularIdentityEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularIfFeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularIncludeEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularLeafEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularLengthEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMandatoryEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMaxElementsEffectiveStatement; @@ -174,17 +232,26 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularNamespaceEf import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularOrderedByEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularOrganizationEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPathEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPatternEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPositionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPrefixEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularPresenceEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRangeEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularReferenceEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRequireInstanceEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRevisionDateEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularRevisionEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularStatusEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularUniqueEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularUnitsEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularValueEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularWhenEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularYangVersionEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularYinElementEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RpcEffectiveStatementImpl; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.TypedefEffectiveStatementImpl; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.UndeclaredInputEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.UndeclaredOutputEffectiveStatement; import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException; /** @@ -340,6 +407,22 @@ public final class EffectiveStatements { : new RegularDescriptionEffectiveStatement(declared, substatements); } + public static DeviateEffectiveStatement createDeviate(final DeviateStatement declared, + final ImmutableList> substatements) { + return new DeviateEffectiveStatementImpl(declared, substatements); + } + + public static DeviationEffectiveStatement createDeviation(final DeviationStatement declared, + final ImmutableList> substatements) { + return new DeviationEffectiveStatementImpl(declared, substatements); + } + + public static EnumEffectiveStatement createEnum(final EnumStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyEnumEffectiveStatement(declared) + : new RegularEnumEffectiveStatement(declared, substatements); + } + public static ErrorAppTagEffectiveStatement createErrorAppTag(final ErrorAppTagStatement declared, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyErrorAppTagEffectiveStatement(declared) @@ -352,6 +435,12 @@ public final class EffectiveStatements { : new RegularErrorMessageEffectiveStatement(declared, substatements); } + public static ExtensionEffectiveStatement createExtension(final ExtensionStatement declared, + final ImmutableList> substatements, + final @Nullable SchemaPath schemaPath) { + return new ExtensionEffectiveStatementImpl(declared, substatements, schemaPath); + } + public static FeatureEffectiveStatement createFeature(final FeatureStatement declared, final Immutable path, final int flags, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyFeatureEffectiveStatement(declared, path, flags) @@ -380,12 +469,64 @@ public final class EffectiveStatements { : new RegularIfFeatureEffectiveStatement(declared, substatements); } + public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final Immutable path) { + return new EmptyIdentityEffectiveStatement(declared, path); + } + + public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final Immutable path, + final int flags, final ImmutableList> substatements, + final ImmutableSet baseIdentities) { + return new RegularIdentityEffectiveStatement(declared, path, flags, substatements, baseIdentities); + } + + public static ImportEffectiveStatement createImport(final ImportStatement declared, + final ImmutableList> substatements, + final SourceIdentifier importedSource) { + return new ImportEffectiveStatementImpl(declared, substatements, importedSource); + } + public static IncludeEffectiveStatement createInclude(final IncludeStatement declared, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyIncludeEffectiveStatement(declared) : new RegularIncludeEffectiveStatement(declared, substatements); } + public static InputEffectiveStatement copyInput(final InputEffectiveStatement original, final Immutable path, + final int flags) { + if (original instanceof DeclaredInputEffectiveStatement) { + return new DeclaredInputEffectiveStatement((DeclaredInputEffectiveStatement) original, path, flags); + } else if (original instanceof UndeclaredInputEffectiveStatement) { + return new UndeclaredInputEffectiveStatement((UndeclaredInputEffectiveStatement) original, path, flags); + } else { + throw new IllegalArgumentException("Unsupported original " + original); + } + } + + public static InputEffectiveStatement createInput(final Immutable path, final int flags, + final ImmutableList> substatements) + throws SubstatementIndexingException { + return new UndeclaredInputEffectiveStatement(substatements, path, flags); + } + + public static InputEffectiveStatement createInput(final InputStatement declared, final Immutable path, + final int flags, final ImmutableList> substatements) + throws SubstatementIndexingException { + return new DeclaredInputEffectiveStatement(declared, substatements, path, flags); + } + + public static LeafEffectiveStatement copyLeaf(final LeafEffectiveStatement original, final Immutable path, + final int flags, final @Nullable LeafSchemaNode newOriginal) { + checkArgument(original instanceof AbstractLeafEffectiveStatement, "Unsupported original %s", original); + return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, path, flags, newOriginal); + } + + public static LeafEffectiveStatement createLeaf(final LeafStatement declared, final Immutable path, + final int flags, final ImmutableList> substatements, + final @Nullable LeafSchemaNode original) throws SubstatementIndexingException { + return original == null ? new EmptyLeafEffectiveStatement(declared, path, flags, substatements) + : new RegularLeafEffectiveStatement(declared, path, flags, substatements, original); + } + public static LengthEffectiveStatement createLength(final LengthStatement declared, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyLengthEffectiveStatement(declared) @@ -430,6 +571,42 @@ public final class EffectiveStatements { : new RegularNamespaceEffectiveStatement(declared, substatements); } + public static NotificationEffectiveStatement copyNotification(final NotificationEffectiveStatement original, + final Immutable path, final int flags) { + checkArgument(original instanceof NotificationEffectiveStatementImpl, "Unsupported original %s", original); + return new NotificationEffectiveStatementImpl((NotificationEffectiveStatementImpl) original, path, flags); + } + + public static NotificationEffectiveStatement createNotification(final NotificationStatement declared, + final Immutable path, final int flags, + final ImmutableList> substatements) + throws SubstatementIndexingException { + return new NotificationEffectiveStatementImpl(declared, substatements, path, flags); + } + + public static OutputEffectiveStatement copyOutput(final OutputEffectiveStatement original, final Immutable path, + final int flags) { + if (original instanceof DeclaredOutputEffectiveStatement) { + return new DeclaredOutputEffectiveStatement((DeclaredOutputEffectiveStatement) original, path, flags); + } else if (original instanceof UndeclaredOutputEffectiveStatement) { + return new UndeclaredOutputEffectiveStatement((UndeclaredOutputEffectiveStatement) original, path, flags); + } else { + throw new IllegalArgumentException("Unsupported original " + original); + } + } + + public static OutputEffectiveStatement createOutput(final Immutable path, final int flags, + final ImmutableList> substatements) + throws SubstatementIndexingException { + return new UndeclaredOutputEffectiveStatement(substatements, path, flags); + } + + public static OutputEffectiveStatement createOutput(final OutputStatement declared, final Immutable path, + final int flags, final ImmutableList> substatements) + throws SubstatementIndexingException { + return new DeclaredOutputEffectiveStatement(declared, substatements, path, flags); + } + public static OrderedByEffectiveStatement createOrderedBy(final OrderedByStatement declared) { return new EmptyOrderedByEffectiveStatement(declared); } @@ -456,6 +633,12 @@ public final class EffectiveStatements { : new RegularPathEffectiveStatement(declared, substatements); } + public static PatternEffectiveStatement createPattern(final PatternStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyPatternEffectiveStatement(declared) + : new RegularPatternEffectiveStatement(declared, substatements); + } + public static PositionEffectiveStatement createPosition(final PositionStatement declared) { return new EmptyPositionEffectiveStatement(declared); } @@ -466,6 +649,24 @@ public final class EffectiveStatements { : new RegularPositionEffectiveStatement(declared, substatements); } + public static PrefixEffectiveStatement createPrefix(final PrefixStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyPrefixEffectiveStatement(declared) + : new RegularPrefixEffectiveStatement(declared, substatements); + } + + public static PresenceEffectiveStatement createPresence(final PresenceStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyPresenceEffectiveStatement(declared) + : new RegularPresenceEffectiveStatement(declared, substatements); + } + + public static RangeEffectiveStatement createRange(final RangeStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyRangeEffectiveStatement(declared) + : new RegularRangeEffectiveStatement(declared, substatements); + } + public static ReferenceEffectiveStatement createReference(final ReferenceStatement declared) { return new EmptyReferenceEffectiveStatement(declared); } @@ -476,10 +677,10 @@ public final class EffectiveStatements { : new RegularReferenceEffectiveStatement(declared, substatements); } - public static PresenceEffectiveStatement createPresence(final PresenceStatement declared, + public static RevisionEffectiveStatement createRevision(final RevisionStatement declared, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyPresenceEffectiveStatement(declared) - : new RegularPresenceEffectiveStatement(declared, substatements); + return substatements.isEmpty() ? new EmptyRevisionEffectiveStatement(declared) + : new RegularRevisionEffectiveStatement(declared, substatements); } public static RequireInstanceEffectiveStatement createRequireInstance(final boolean argument) { @@ -508,6 +709,12 @@ public final class EffectiveStatements { : new RegularRevisionDateEffectiveStatement(declared, substatements); } + public static RpcEffectiveStatement createRpc(final RpcStatement declared, + final ImmutableList> substatements, final Immutable path, + final int flags) throws SubstatementIndexingException { + return new RpcEffectiveStatementImpl(declared, substatements, path, flags); + } + public static StatusEffectiveStatement createStatus(final StatusStatement declared) { // Aggressively reuse effective instances which are backed by the corresponding empty declared instance, as this // is the case unless there is a weird extension in use. @@ -531,12 +738,24 @@ public final class EffectiveStatements { : new RegularStatusEffectiveStatement(declared, substatements); } + public static TypedefEffectiveStatement createTypedef(final TypedefStatement declared, + final Immutable path, final int flags, + final ImmutableList> substatements) { + return new TypedefEffectiveStatementImpl(declared, path, flags, substatements); + } + public static UnitsEffectiveStatement createUnits(final UnitsStatement declared, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyUnitsEffectiveStatement(declared) : new RegularUnitsEffectiveStatement(declared, substatements); } + public static UniqueEffectiveStatement createUnique(final UniqueStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyUniqueEffectiveStatement(declared) + : new RegularUniqueEffectiveStatement(declared, substatements); + } + public static ValueEffectiveStatement createValue(final ValueStatement declared) { return new EmptyValueEffectiveStatement(declared); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractIdentityEffectiveStatement.java similarity index 96% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractIdentityEffectiveStatement.java index be39914166..42ca57a3e7 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/AbstractIdentityEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractIdentityEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/AbstractLeafEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractLeafEffectiveStatement.java similarity index 96% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/AbstractLeafEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractLeafEffectiveStatement.java index 29d711f0b6..2cd1095740 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/AbstractLeafEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractLeafEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -32,7 +32,8 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.D import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MandatoryMixin; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MustConstraintMixin; -abstract class AbstractLeafEffectiveStatement extends AbstractDeclaredEffectiveStatement.Default +public abstract class AbstractLeafEffectiveStatement + extends AbstractDeclaredEffectiveStatement.Default implements LeafEffectiveStatement, LeafSchemaNode, DerivableSchemaNode, DataSchemaNodeMixin, MandatoryMixin, MustConstraintMixin { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/DeclaredInputEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeclaredInputEffectiveStatement.java similarity index 84% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/DeclaredInputEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeclaredInputEffectiveStatement.java index 4d2722e6e8..28033deccf 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/DeclaredInputEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeclaredInputEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -21,12 +21,13 @@ import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin; -final class DeclaredInputEffectiveStatement extends WithSubstatements +public final class DeclaredInputEffectiveStatement + extends WithSubstatements implements InputEffectiveStatement, InputSchemaNode, OperationContainerMixin { private final @NonNull Immutable path; private final int flags; - DeclaredInputEffectiveStatement(final InputStatement declared, + public DeclaredInputEffectiveStatement(final InputStatement declared, final ImmutableList> substatements, final Immutable path, final int flags) { super(declared, substatements); @@ -34,7 +35,7 @@ final class DeclaredInputEffectiveStatement extends WithSubstatements +public final class DeclaredOutputEffectiveStatement + extends WithSubstatements implements OutputEffectiveStatement, OutputSchemaNode, OperationContainerMixin { private final @NonNull Immutable path; private final int flags; - DeclaredOutputEffectiveStatement(final OutputStatement declared, + public DeclaredOutputEffectiveStatement(final OutputStatement declared, final ImmutableList> substatements, final Immutable path, final int flags) { super(declared, substatements); @@ -34,7 +35,7 @@ final class DeclaredOutputEffectiveStatement extends WithSubstatements +public final class DeviateEffectiveStatementImpl extends WithSubstatements implements DeviateDefinition, DeviateEffectiveStatement { - DeviateEffectiveStatementImpl(final DeviateStatement declared, + public DeviateEffectiveStatementImpl(final DeviateStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeviationEffectiveStatementImpl.java similarity index 88% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeviationEffectiveStatementImpl.java index 627f1b7db8..45214af985 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationEffectiveStatementImpl.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeviationEffectiveStatementImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import java.util.Collection; @@ -18,9 +18,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class DeviationEffectiveStatementImpl extends WithSubstatements +public final class DeviationEffectiveStatementImpl extends WithSubstatements implements DeviationEffectiveStatement, Deviation, DocumentedNodeMixin { - DeviationEffectiveStatementImpl(final DeviationStatement declared, + public DeviationEffectiveStatementImpl(final DeviationStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EmptyEnumEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyEnumEffectiveStatement.java similarity index 81% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EmptyEnumEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyEnumEffectiveStatement.java index 56e46e3c77..68688006c6 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EmptyEnumEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyEnumEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus; import org.opendaylight.yangtools.yang.model.api.Status; @@ -14,9 +14,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class EmptyEnumEffectiveStatement extends DefaultArgument +public final class EmptyEnumEffectiveStatement extends DefaultArgument implements EnumEffectiveStatement, DocumentedNodeMixin, WithStatus { - EmptyEnumEffectiveStatement(final EnumStatement declared) { + public EmptyEnumEffectiveStatement(final EnumStatement declared) { super(declared); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/EmptyIdentityEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyIdentityEffectiveStatement.java similarity index 79% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/EmptyIdentityEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyIdentityEffectiveStatement.java index fd872d0a93..c77bcb4204 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/EmptyIdentityEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyIdentityEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableSet; import java.util.Collection; @@ -14,10 +14,10 @@ import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement; -final class EmptyIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement { +public final class EmptyIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement { private static final int CURRENT_FLAGS = new FlagsBuilder().setStatus(Status.CURRENT).toFlags(); - EmptyIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path) { + public EmptyIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path) { super(declared, path); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/EmptyLeafEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyLeafEffectiveStatement.java similarity index 80% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/EmptyLeafEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyLeafEffectiveStatement.java index e60cb94eb5..b06c26e2e1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/EmptyLeafEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyLeafEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import java.util.Optional; @@ -14,8 +14,8 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement; -final class EmptyLeafEffectiveStatement extends AbstractLeafEffectiveStatement { - EmptyLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags, +public final class EmptyLeafEffectiveStatement extends AbstractLeafEffectiveStatement { + public EmptyLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags, final ImmutableList> substatements) { super(declared, path, flags, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/EmptyPatternEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyPatternEffectiveStatement.java similarity index 78% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/EmptyPatternEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyPatternEffectiveStatement.java index 50bc5f2297..4d7a3ee7a8 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/EmptyPatternEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyPatternEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression; @@ -13,9 +13,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin; -final class EmptyPatternEffectiveStatement extends DefaultArgument +public final class EmptyPatternEffectiveStatement extends DefaultArgument implements PatternEffectiveStatement, ConstraintMetaDefinitionMixin { - EmptyPatternEffectiveStatement(final PatternStatement declared) { + public EmptyPatternEffectiveStatement(final PatternStatement declared) { super(declared); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/EmptyPrefixEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyPrefixEffectiveStatement.java similarity index 73% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/EmptyPrefixEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyPrefixEffectiveStatement.java index 98786f7e51..4a08ee43f8 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/EmptyPrefixEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyPrefixEffectiveStatement.java @@ -5,15 +5,15 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; -final class EmptyPrefixEffectiveStatement extends DefaultArgument +public final class EmptyPrefixEffectiveStatement extends DefaultArgument implements PrefixEffectiveStatement { - EmptyPrefixEffectiveStatement(final PrefixStatement declared) { + public EmptyPrefixEffectiveStatement(final PrefixStatement declared) { super(declared); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/EmptyRangeEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyRangeEffectiveStatement.java similarity index 78% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/EmptyRangeEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyRangeEffectiveStatement.java index f4b74508b2..1dba637289 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/EmptyRangeEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyRangeEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import java.util.List; import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement; @@ -14,9 +14,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin; -final class EmptyRangeEffectiveStatement extends DefaultArgument, RangeStatement> +public final class EmptyRangeEffectiveStatement extends DefaultArgument, RangeStatement> implements RangeEffectiveStatement, ConstraintMetaDefinitionMixin, RangeStatement> { - EmptyRangeEffectiveStatement(final RangeStatement declared) { + public EmptyRangeEffectiveStatement(final RangeStatement declared) { super(declared); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/EmptyRevisionEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyRevisionEffectiveStatement.java similarity index 77% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/EmptyRevisionEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyRevisionEffectiveStatement.java index 96d6229815..a515673d84 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/EmptyRevisionEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyRevisionEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement; @@ -13,9 +13,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class EmptyRevisionEffectiveStatement extends DefaultArgument +public final class EmptyRevisionEffectiveStatement extends DefaultArgument implements RevisionEffectiveStatement, DocumentedNodeMixin { - EmptyRevisionEffectiveStatement(final RevisionStatement declared) { + public EmptyRevisionEffectiveStatement(final RevisionStatement declared) { super(declared); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/EmptyUniqueEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyUniqueEffectiveStatement.java similarity index 75% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/EmptyUniqueEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyUniqueEffectiveStatement.java index b520e00ae9..189bb0d8b6 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/EmptyUniqueEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyUniqueEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import java.util.Set; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant; @@ -13,9 +13,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; -class EmptyUniqueEffectiveStatement extends DefaultArgument, UniqueStatement> +public class EmptyUniqueEffectiveStatement extends DefaultArgument, UniqueStatement> implements UniqueEffectiveStatement { - EmptyUniqueEffectiveStatement(final UniqueStatement declared) { + public EmptyUniqueEffectiveStatement(final UniqueStatement declared) { super(declared); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ExtensionEffectiveStatementImpl.java similarity index 95% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ExtensionEffectiveStatementImpl.java index e0ed978857..d2d3dc9c18 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ExtensionEffectiveStatementImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static com.google.common.base.Verify.verifyNotNull; @@ -27,7 +27,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.YinElementEffectiveStateme import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class ExtensionEffectiveStatementImpl extends DefaultArgument +public final class ExtensionEffectiveStatementImpl extends DefaultArgument implements ExtensionDefinition, ExtensionEffectiveStatement, DocumentedNodeMixin { private static final class RecursionDetector extends ThreadLocal> { boolean check(final ExtensionEffectiveStatementImpl current) { @@ -66,7 +66,7 @@ final class ExtensionEffectiveStatementImpl extends DefaultArgument> substatements, final SchemaPath path) { super(declared); this.substatements = maskList(substatements); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportEffectiveStatementImpl.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ImportEffectiveStatementImpl.java similarity index 92% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportEffectiveStatementImpl.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ImportEffectiveStatementImpl.java index f69d3319f6..b898eaada1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportEffectiveStatementImpl.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ImportEffectiveStatementImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; @@ -23,12 +23,12 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class ImportEffectiveStatementImpl extends WithSubstatements +public final class ImportEffectiveStatementImpl extends WithSubstatements implements ImportEffectiveStatement, ModuleImport, DocumentedNodeMixin { private final @Nullable Revision revision; private final @Nullable SemVer semVer; - ImportEffectiveStatementImpl(final ImportStatement declared, + public ImportEffectiveStatementImpl(final ImportStatement declared, final ImmutableList> substatements, final @NonNull SourceIdentifier importedSource) { super(declared, substatements); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/NotificationEffectiveStatementImpl.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/NotificationEffectiveStatementImpl.java similarity index 90% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/NotificationEffectiveStatementImpl.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/NotificationEffectiveStatementImpl.java index 96de18aebf..70a5b3da2c 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/NotificationEffectiveStatementImpl.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/NotificationEffectiveStatementImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.D import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MustConstraintMixin; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.SchemaNodeMixin; -final class NotificationEffectiveStatementImpl +public final class NotificationEffectiveStatementImpl extends WithSubstatements implements NotificationDefinition, NotificationEffectiveStatement, SchemaNodeMixin, DataNodeContainerMixin, @@ -35,7 +35,7 @@ final class NotificationEffectiveStatementImpl private final @NonNull Immutable path; private final int flags; - NotificationEffectiveStatementImpl(final NotificationStatement declared, + public NotificationEffectiveStatementImpl(final NotificationStatement declared, final ImmutableList> substatements, final Immutable path, final int flags) { super(declared, substatements); @@ -43,7 +43,7 @@ final class NotificationEffectiveStatementImpl this.flags = flags; } - NotificationEffectiveStatementImpl(final NotificationEffectiveStatementImpl original, final Immutable path, + public NotificationEffectiveStatementImpl(final NotificationEffectiveStatementImpl original, final Immutable path, final int flags) { super(original); this.path = requireNonNull(path); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/RegularEnumEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularEnumEffectiveStatement.java similarity index 85% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/RegularEnumEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularEnumEffectiveStatement.java index 71aba6dc89..adddc6f82b 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/RegularEnumEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularEnumEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus; @@ -17,9 +17,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class RegularEnumEffectiveStatement extends WithSubstatements +public final class RegularEnumEffectiveStatement extends WithSubstatements implements EnumEffectiveStatement, DocumentedNodeMixin, WithStatus { - RegularEnumEffectiveStatement(final EnumStatement declared, + public RegularEnumEffectiveStatement(final EnumStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/RegularIdentityEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularIdentityEffectiveStatement.java similarity index 85% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/RegularIdentityEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularIdentityEffectiveStatement.java index ec089c84bb..be0e479fb6 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/RegularIdentityEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularIdentityEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -16,12 +16,12 @@ import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement; -final class RegularIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement { +public final class RegularIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement { private final @NonNull Object baseIdentities; private final @NonNull Object substatements; private final int flags; - RegularIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path, final int flags, + public RegularIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path, final int flags, final ImmutableList> substatements, final ImmutableSet baseIdentities) { super(declared, path); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/RegularLeafEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularLeafEffectiveStatement.java similarity index 76% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/RegularLeafEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularLeafEffectiveStatement.java index a2c9103de1..319b71a142 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/RegularLeafEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularLeafEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import java.util.Optional; @@ -15,16 +15,16 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement; -final class RegularLeafEffectiveStatement extends AbstractLeafEffectiveStatement { +public final class RegularLeafEffectiveStatement extends AbstractLeafEffectiveStatement { private final @Nullable LeafSchemaNode original; - RegularLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags, + public RegularLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags, final ImmutableList> substatements, final LeafSchemaNode original) { super(declared, path, flags, substatements); this.original = original; } - RegularLeafEffectiveStatement(final AbstractLeafEffectiveStatement originalEffective, final Immutable path, + public RegularLeafEffectiveStatement(final AbstractLeafEffectiveStatement originalEffective, final Immutable path, final int flags, final LeafSchemaNode original) { super(originalEffective, path, flags); this.original = original; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/RegularPatternEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularPatternEffectiveStatement.java similarity index 81% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/RegularPatternEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularPatternEffectiveStatement.java index 38ce43b361..bf7ad54428 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/RegularPatternEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularPatternEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -15,9 +15,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin; -final class RegularPatternEffectiveStatement extends WithSubstatements +public final class RegularPatternEffectiveStatement extends WithSubstatements implements PatternEffectiveStatement, ConstraintMetaDefinitionMixin { - RegularPatternEffectiveStatement(final PatternStatement declared, + public RegularPatternEffectiveStatement(final PatternStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/RegularPrefixEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularPrefixEffectiveStatement.java similarity index 78% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/RegularPrefixEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularPrefixEffectiveStatement.java index 1600e0a490..f31ec59335 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/RegularPrefixEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularPrefixEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @@ -13,9 +13,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; -final class RegularPrefixEffectiveStatement extends WithSubstatements +public final class RegularPrefixEffectiveStatement extends WithSubstatements implements PrefixEffectiveStatement { - RegularPrefixEffectiveStatement(final PrefixStatement declared, + public RegularPrefixEffectiveStatement(final PrefixStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RegularRangeEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularRangeEffectiveStatement.java similarity index 82% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RegularRangeEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularRangeEffectiveStatement.java index edc473fc13..2807382024 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RegularRangeEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularRangeEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import java.util.List; @@ -16,9 +16,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.ConstraintMetaDefinitionMixin; -final class RegularRangeEffectiveStatement extends WithSubstatements, RangeStatement> +public final class RegularRangeEffectiveStatement extends WithSubstatements, RangeStatement> implements RangeEffectiveStatement, ConstraintMetaDefinitionMixin, RangeStatement> { - RegularRangeEffectiveStatement(final RangeStatement declared, + public RegularRangeEffectiveStatement(final RangeStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RegularRevisionEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularRevisionEffectiveStatement.java similarity index 81% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RegularRevisionEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularRevisionEffectiveStatement.java index cdb8395928..2a3f97291e 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RegularRevisionEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularRevisionEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.common.Revision; @@ -15,9 +15,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin; -final class RegularRevisionEffectiveStatement extends WithSubstatements +public final class RegularRevisionEffectiveStatement extends WithSubstatements implements RevisionEffectiveStatement, DocumentedNodeMixin { - RegularRevisionEffectiveStatement(final RevisionStatement declared, + public RegularRevisionEffectiveStatement(final RevisionStatement declared, final ImmutableList> substatements) { super(declared, substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/RegularUniqueEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularUniqueEffectiveStatement.java similarity index 80% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/RegularUniqueEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularUniqueEffectiveStatement.java index 0b3579566a..2d6f13af6f 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/RegularUniqueEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularUniqueEffectiveStatement.java @@ -5,17 +5,17 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement; -final class RegularUniqueEffectiveStatement extends EmptyUniqueEffectiveStatement { +public final class RegularUniqueEffectiveStatement extends EmptyUniqueEffectiveStatement { private final @NonNull Object substatements; - RegularUniqueEffectiveStatement(final UniqueStatement declared, + public RegularUniqueEffectiveStatement(final UniqueStatement declared, final ImmutableList> substatements) { super(declared); this.substatements = maskList(substatements); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcEffectiveStatementImpl.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RpcEffectiveStatementImpl.java similarity index 80% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcEffectiveStatementImpl.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RpcEffectiveStatementImpl.java index f216c4a5b3..b63e305ed7 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcEffectiveStatementImpl.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RpcEffectiveStatementImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -20,13 +20,14 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationDefinitionMixin; -final class RpcEffectiveStatementImpl extends WithSubstatements +public final class RpcEffectiveStatementImpl extends WithSubstatements implements RpcDefinition, RpcEffectiveStatement, OperationDefinitionMixin { private final @NonNull Immutable path; private final int flags; - RpcEffectiveStatementImpl(final RpcStatement declared, - final ImmutableList> substatements, final Immutable path, final int flags) { + public RpcEffectiveStatementImpl(final RpcStatement declared, + final ImmutableList> substatements, + final Immutable path, final int flags) { super(declared, substatements); this.path = requireNonNull(path); this.flags = flags; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefEffectiveStatementImpl.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/TypedefEffectiveStatementImpl.java similarity index 96% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefEffectiveStatementImpl.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/TypedefEffectiveStatementImpl.java index 5562c186e8..4b0e9f68f2 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefEffectiveStatementImpl.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/TypedefEffectiveStatementImpl.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -40,7 +40,7 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.S import org.slf4j.Logger; import org.slf4j.LoggerFactory; -final class TypedefEffectiveStatementImpl extends Default +public final class TypedefEffectiveStatementImpl extends Default implements TypedefEffectiveStatement, SchemaNodeMixin { private static final Logger LOG = LoggerFactory.getLogger(TypedefEffectiveStatementImpl.class); @@ -70,7 +70,7 @@ final class TypedefEffectiveStatementImpl extends Default> substatements) { super(declared); this.path = requireNonNull(path); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/UndeclaredInputEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredInputEffectiveStatement.java similarity index 86% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/UndeclaredInputEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredInputEffectiveStatement.java index d11260a116..60ac0d7484 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/UndeclaredInputEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredInputEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -21,20 +21,20 @@ import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractUndeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin; -final class UndeclaredInputEffectiveStatement +public final class UndeclaredInputEffectiveStatement extends WithSubstatements implements InputEffectiveStatement, InputSchemaNode, OperationContainerMixin { private final @NonNull Immutable path; private final int flags; - UndeclaredInputEffectiveStatement(final ImmutableList> substatements, + public UndeclaredInputEffectiveStatement(final ImmutableList> substatements, final Immutable path, final int flags) { super(substatements); this.path = requireNonNull(path); this.flags = flags; } - UndeclaredInputEffectiveStatement(final UndeclaredInputEffectiveStatement original, final Immutable path, + public UndeclaredInputEffectiveStatement(final UndeclaredInputEffectiveStatement original, final Immutable path, final int flags) { super(original); this.path = requireNonNull(path); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/UndeclaredOutputEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredOutputEffectiveStatement.java similarity index 85% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/UndeclaredOutputEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredOutputEffectiveStatement.java index e50eb5563d..baf5381e2b 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/UndeclaredOutputEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredOutputEffectiveStatement.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import static java.util.Objects.requireNonNull; @@ -21,20 +21,20 @@ import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractUndeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.OperationContainerMixin; -final class UndeclaredOutputEffectiveStatement +public final class UndeclaredOutputEffectiveStatement extends WithSubstatements implements OutputEffectiveStatement, OutputSchemaNode, OperationContainerMixin { private final @NonNull Immutable path; private final int flags; - UndeclaredOutputEffectiveStatement(final ImmutableList> substatements, + public UndeclaredOutputEffectiveStatement(final ImmutableList> substatements, final Immutable path, final int flags) { super(substatements); this.path = requireNonNull(path); this.flags = flags; } - UndeclaredOutputEffectiveStatement(final UndeclaredOutputEffectiveStatement original, final Immutable path, + public UndeclaredOutputEffectiveStatement(final UndeclaredOutputEffectiveStatement original, final Immutable path, final int flags) { super(original); this.path = requireNonNull(path); diff --git a/yang/yang-parser-rfc7950/src/main/java/module-info.java b/yang/yang-parser-rfc7950/src/main/java/module-info.java index 7025307828..7f135da6c4 100644 --- a/yang/yang-parser-rfc7950/src/main/java/module-info.java +++ b/yang/yang-parser-rfc7950/src/main/java/module-info.java @@ -22,6 +22,7 @@ module org.opendaylight.yangtools.yang.parser.rfc7950 { requires transitive org.opendaylight.yangtools.yang.repo.spi; requires com.google.common; + requires org.antlr.antlr4.runtime; requires org.opendaylight.yangtools.concepts; requires org.opendaylight.yangtools.openconfig.model.api; requires org.opendaylight.yangtools.yang.common; @@ -38,35 +39,16 @@ module org.opendaylight.yangtools.yang.parser.rfc7950 { requires static org.eclipse.jdt.annotation; // FIXME: hide these - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef; - exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses; // FIXME: this needs to be renamed to match parser-support naming convention exports org.opendaylight.yangtools.yang.parser.openconfig.stmt; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/reactor/RFC7950Reactors.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/reactor/RFC7950Reactors.java index bbd37c514c..819c490df5 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/reactor/RFC7950Reactors.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/reactor/RFC7950Reactors.java @@ -25,17 +25,12 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment.AugmentStatem import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.case_.CaseStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.DeviateStatementRFC6020Support; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviate.DeviateStatementRFC7950Support; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation.DeviationStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_.EnumStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension.ExtensionStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity.IdentityStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.IfFeatureStatementRFC6020Support; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.if_feature.IfFeatureStatementRFC7950Support; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_.ImportStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_.ImportedVersionNamespace; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key.KeyStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.LeafStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list.LeafListStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list.ConfigListWarningNamespace; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list.ListStatementSupport; @@ -52,12 +47,17 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ContactStatement import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ContainerStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.DefaultStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.DescriptionStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.DeviationStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.EnumStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ErrorAppTagStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ErrorMessageStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.FeatureStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.FractionDigitsStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.GroupingStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.IdentityStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.IncludeStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.InputStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.LeafStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.LengthStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MandatoryStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MaxElementsStatementSupport; @@ -66,12 +66,19 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ModifierStatemen import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.NamespaceStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.OrderedByStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.OrganizationStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.OutputStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.PositionStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.PrefixStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.PresenceStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RangeStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ReferenceStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RequireInstanceStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RevisionDateStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RevisionStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.RpcStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.StatusStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.TypedefStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.UniqueStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.UnitsStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ValueStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.WhenStatementSupport; @@ -82,21 +89,14 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.QNameModuleNam import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.must.MustStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification.NotificationStatementRFC6020Support; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification.NotificationStatementRFC7950Support; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.path.PathStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.pattern.PatternStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix.PrefixStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range.RangeStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineTargetNamespace; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision.RevisionStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc.RpcStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule.SubmoduleStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type.BaseTypeNamespace; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type.TypeStatementRFC6020Support; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type.TypeStatementRFC7950Support; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef.TypedefStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique.UniqueStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses.SourceGroupingNamespace; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses.UsesStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java index 0b2d036f44..1354830905 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviate/AbstractDeviateStatementSupport.java @@ -29,6 +29,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DeviateEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DeviateStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles; import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; @@ -201,9 +202,9 @@ abstract class AbstractDeviateStatementSupport } @Override - protected DeviateEffectiveStatement createEffective(final Current stmt, + protected final DeviateEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return new DeviateEffectiveStatementImpl(stmt.declared(), substatements); + return EffectiveStatements.createDeviate(stmt.declared(), substatements); } protected SubstatementValidator getSubstatementValidatorForDeviate(final DeviateKind deviateKind) { diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionStatementSupport.java index b448a735db..2eddb477fe 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionStatementSupport.java @@ -18,6 +18,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatemen import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.YinElementStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -92,6 +93,6 @@ public final class ExtensionStatementSupport @Override protected ExtensionEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return new ExtensionEffectiveStatementImpl(stmt.declared(), substatements, stmt.optionalPath()); + return EffectiveStatements.createExtension(stmt.declared(), substatements, stmt.optionalPath()); } } \ No newline at end of file diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportStatementSupport.java index fc5ab16afa..250fc3fe65 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/import_/ImportStatementSupport.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_; -import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; @@ -28,6 +27,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -141,9 +141,8 @@ public final class ImportStatementSupport @Override protected ImportEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - checkState(!substatements.isEmpty(), "Unexpected empty effective import statement"); - - return new ImportEffectiveStatementImpl(stmt.declared(), substatements, + InferenceException.throwIf(substatements.isEmpty(), stmt, "Unexpected empty effective import statement"); + return EffectiveStatements.createImport(stmt.declared(), substatements, verifyNotNull(stmt.getFromNamespace(ImportedVersionNamespace.class, Empty.getInstance()))); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ActionStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ActionStatementSupport.java index 50d28851f8..1532bc96ed 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ActionStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ActionStatementSupport.java @@ -24,8 +24,6 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins; import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/DeviationStatementSupport.java similarity index 95% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/DeviationStatementSupport.java index 96de0d3f87..5a638f63d1 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/deviation/DeviationStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/DeviationStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.deviation; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -17,6 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DeviationEffectiveStatemen import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -80,6 +81,6 @@ public final class DeviationStatementSupport @Override protected DeviationEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return new DeviationEffectiveStatementImpl(stmt.declared(), substatements); + return EffectiveStatements.createDeviation(stmt.declared(), substatements); } } \ No newline at end of file diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EnumStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/EnumStatementSupport.java similarity index 93% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EnumStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/EnumStatementSupport.java index 64e74eef8d..d262ce426c 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EnumStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/EnumStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static java.util.Objects.requireNonNull; @@ -18,6 +18,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.EnumEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -82,7 +83,6 @@ public final class EnumStatementSupport @Override protected EnumEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyEnumEffectiveStatement(stmt.declared()) - : new RegularEnumEffectiveStatement(stmt.declared(), substatements); + return EffectiveStatements.createEnum(stmt.declared(), substatements); } } \ No newline at end of file diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/IdentityStatementSupport.java similarity index 94% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/IdentityStatementSupport.java index f9d67bed96..b262f6fba4 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/identity/IdentityStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/IdentityStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.identity; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static com.google.common.base.Verify.verify; import static com.google.common.base.Verify.verifyNotNull; @@ -28,6 +28,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder; import org.opendaylight.yangtools.yang.parser.spi.IdentityNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport; @@ -106,7 +107,7 @@ public final class IdentityStatementSupport protected IdentityEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { if (substatements.isEmpty()) { - return new EmptyIdentityEffectiveStatement(stmt.declared(), stmt.effectivePath()); + return EffectiveStatements.createIdentity(stmt.declared(), stmt.effectivePath()); } final List identities = new ArrayList<>(); @@ -122,7 +123,7 @@ public final class IdentityStatementSupport } } - return new RegularIdentityEffectiveStatement(stmt.declared(), stmt.effectivePath(), new FlagsBuilder() + return EffectiveStatements.createIdentity(stmt.declared(), stmt.effectivePath(), new FlagsBuilder() .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT)) .toFlags(), substatements, ImmutableSet.copyOf(identities)); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/InputStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/InputStatementSupport.java similarity index 90% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/InputStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/InputStatementSupport.java index 37bcf11602..f4a8e34039 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/input/InputStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/InputStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static java.util.Objects.requireNonNull; @@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; import org.opendaylight.yangtools.yang.model.api.stmt.InputEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.ri.stmt.ImplicitStatements; import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport; @@ -109,22 +110,25 @@ public final class InputStatementSupport @Override protected InputEffectiveStatement copyDeclaredEffective(final int flags, final Current stmt, final InputEffectiveStatement original) { - return new DeclaredInputEffectiveStatement((DeclaredInputEffectiveStatement) original, stmt.effectivePath(), + return EffectiveStatements.copyInput(original, stmt.effectivePath(), flags); } @Override protected InputEffectiveStatement copyUndeclaredEffective(final int flags, final Current stmt, final InputEffectiveStatement original) { - return new UndeclaredInputEffectiveStatement((UndeclaredInputEffectiveStatement) original, stmt.effectivePath(), - flags); + return EffectiveStatements.copyInput(original, stmt.effectivePath(), flags); } @Override protected InputEffectiveStatement createDeclaredEffective(final int flags, final Current stmt, final ImmutableList> substatements) { - return new DeclaredInputEffectiveStatement(stmt.declared(), substatements, stmt.effectivePath(), flags); + try { + return EffectiveStatements.createInput(stmt.declared(), stmt.effectivePath(), flags, substatements); + } catch (SubstatementIndexingException e) { + throw new SourceException(e.getMessage(), stmt, e); + } } @Override @@ -132,7 +136,7 @@ public final class InputStatementSupport final Current stmt, final ImmutableList> substatements) { try { - return new UndeclaredInputEffectiveStatement(substatements, stmt.effectivePath(), flags); + return EffectiveStatements.createInput(stmt.effectivePath(), flags, substatements); } catch (SubstatementIndexingException e) { throw new SourceException(e.getMessage(), stmt, e); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/LeafStatementSupport.java similarity index 90% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/LeafStatementSupport.java index e46e5a2ffa..77535e5690 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/LeafStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import com.google.common.collect.ImmutableList; import java.util.Collection; @@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatemen import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport; @@ -83,7 +84,7 @@ public final class LeafStatementSupport @Override public LeafEffectiveStatement copyEffective(final Current stmt, final LeafEffectiveStatement original) { - return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, stmt.effectivePath(), + return EffectiveStatements.copyLeaf(original, stmt.effectivePath(), computeFlags(stmt, original.effectiveSubstatements()), stmt.original(LeafSchemaNode.class)); } @@ -98,11 +99,8 @@ public final class LeafStatementSupport EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeStmt, dflt), stmt, "Leaf '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt); - final LeafSchemaNode original = stmt.original(LeafSchemaNode.class); - final int flags = computeFlags(stmt, substatements); - final LeafStatement declared = stmt.declared(); - return original == null ? new EmptyLeafEffectiveStatement(declared, stmt.effectivePath(), flags, substatements) - : new RegularLeafEffectiveStatement(declared, stmt.effectivePath(), flags, substatements, original); + return EffectiveStatements.createLeaf(stmt.declared(), stmt.effectivePath(), computeFlags(stmt, substatements), + substatements, stmt.original(LeafSchemaNode.class)); } private static int computeFlags(final Current stmt, diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/OutputStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/OutputStatementSupport.java similarity index 89% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/OutputStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/OutputStatementSupport.java index 4944490c65..6eaed5830b 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/output/OutputStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/OutputStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static java.util.Objects.requireNonNull; @@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; import org.opendaylight.yangtools.yang.model.api.stmt.OutputEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.ri.stmt.ImplicitStatements; import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseOperationContainerStatementSupport; @@ -109,22 +110,24 @@ public final class OutputStatementSupport @Override protected OutputEffectiveStatement copyDeclaredEffective(final int flags, final Current stmt, final OutputEffectiveStatement original) { - return new DeclaredOutputEffectiveStatement((DeclaredOutputEffectiveStatement) original, stmt.effectivePath(), - flags); + return EffectiveStatements.copyOutput(original, stmt.effectivePath(), flags); } @Override protected OutputEffectiveStatement copyUndeclaredEffective(final int flags, final Current stmt, final OutputEffectiveStatement original) { - return new UndeclaredOutputEffectiveStatement((UndeclaredOutputEffectiveStatement) original, - stmt.effectivePath(), flags); + return EffectiveStatements.copyOutput(original, stmt.effectivePath(), flags); } @Override protected OutputEffectiveStatement createDeclaredEffective(final int flags, final Current stmt, final ImmutableList> substatements) { - return new DeclaredOutputEffectiveStatement(stmt.declared(), substatements, stmt.effectivePath(), flags); + try { + return EffectiveStatements.createOutput(stmt.declared(), stmt.effectivePath(), flags, substatements); + } catch (SubstatementIndexingException e) { + throw new SourceException(e.getMessage(), stmt, e); + } } @Override @@ -132,7 +135,7 @@ public final class OutputStatementSupport final Current stmt, final ImmutableList> substatements) { try { - return new UndeclaredOutputEffectiveStatement(substatements, stmt.effectivePath(), flags); + return EffectiveStatements.createOutput(stmt.effectivePath(), flags, substatements); } catch (SubstatementIndexingException e) { throw new SourceException(e.getMessage(), stmt, e); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/PrefixStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/PrefixStatementSupport.java similarity index 91% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/PrefixStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/PrefixStatementSupport.java index 372ec3d069..f8cc0f4340 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/prefix/PrefixStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/PrefixStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.prefix; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; @@ -14,6 +14,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PrefixEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -52,7 +53,6 @@ public final class PrefixStatementSupport @Override protected PrefixEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyPrefixEffectiveStatement(stmt.declared()) - : new RegularPrefixEffectiveStatement(stmt.declared(), substatements); + return EffectiveStatements.createPrefix(stmt.declared(), substatements); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RangeStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RangeStatementSupport.java similarity index 96% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RangeStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RangeStatementSupport.java index de35566874..33da746ad4 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RangeStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RangeStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -23,6 +23,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RangeStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UnresolvedNumber; import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -95,8 +96,7 @@ public final class RangeStatementSupport @Override protected RangeEffectiveStatement createEffective(final Current, RangeStatement> stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyRangeEffectiveStatement(stmt.declared()) - : new RegularRangeEffectiveStatement(stmt.declared(), substatements); + return EffectiveStatements.createRange(stmt.declared(), substatements); } @Override diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RevisionStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RevisionStatementSupport.java similarity index 92% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RevisionStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RevisionStatementSupport.java index e0450105c1..43e9349dc5 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/revision/RevisionStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RevisionStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.revision; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import com.google.common.collect.ImmutableList; import java.time.format.DateTimeParseException; @@ -16,6 +16,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RevisionStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -67,7 +68,6 @@ public final class RevisionStatementSupport @Override protected RevisionEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyRevisionEffectiveStatement(stmt.declared()) - : new RegularRevisionEffectiveStatement(stmt.declared(), substatements); + return EffectiveStatements.createRevision(stmt.declared(), substatements); } } \ No newline at end of file diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RpcStatementSupport.java similarity index 95% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RpcStatementSupport.java index 6d40bad567..171f2c40f2 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/rpc/RpcStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RpcStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.rpc; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; @@ -25,10 +25,9 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RpcEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RpcStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder; import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementSupport; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -109,7 +108,7 @@ public final class RpcStatementSupport extends AbstractSchemaTreeStatementSuppor checkState(!substatements.isEmpty(), "Missing implicit input/output statements at %s", stmt.sourceReference()); try { - return new RpcEffectiveStatementImpl(stmt.declared(), substatements, stmt.effectivePath(), + return EffectiveStatements.createRpc(stmt.declared(), substatements, stmt.effectivePath(), computeFlags(substatements)); } catch (SubstatementIndexingException e) { throw new SourceException(e.getMessage(), stmt, e); diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/TypedefStatementSupport.java similarity index 97% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/TypedefStatementSupport.java index 792bb6e7dc..a160ac14e0 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/typedef/TypedefStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/TypedefStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.typedef; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static com.google.common.base.Preconditions.checkState; @@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils; import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace; @@ -127,7 +128,7 @@ public final class TypedefStatementSupport extends EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeEffectiveStmt, dflt), stmt, "Typedef '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt); - return new TypedefEffectiveStatementImpl(declared, stmt.effectivePath(), computeFlags(substatements), + return EffectiveStatements.createTypedef(declared, stmt.effectivePath(), computeFlags(substatements), substatements); } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/UniqueStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/UniqueStatementSupport.java similarity index 95% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/UniqueStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/UniqueStatementSupport.java index 25eb2a0460..84bac5c45e 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/unique/UniqueStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/UniqueStatementSupport.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.unique; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; @@ -23,6 +23,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Desce import org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.UniqueStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -83,9 +84,7 @@ public final class UniqueStatementSupport @Override protected UniqueEffectiveStatement createEffective(final Current, UniqueStatement> stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyUniqueEffectiveStatement(stmt.declared()) - : new RegularUniqueEffectiveStatement(stmt.declared(), substatements); - + return EffectiveStatements.createUnique(stmt.declared(), substatements); } private static ImmutableSet parseUniqueConstraintArgument(final StmtContext ctx, diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java index 3e30d5a5ce..7893a30ca2 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java @@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins; import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport; @@ -43,18 +44,18 @@ abstract class AbstractNotificationStatementSupport protected final NotificationEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { try { - return new NotificationEffectiveStatementImpl(stmt.declared(), substatements, stmt.effectivePath(), - EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements)); + return EffectiveStatements.createNotification(stmt.declared(), stmt.effectivePath(), + EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements), substatements); } catch (SubstatementIndexingException e) { throw new SourceException(e.getMessage(), stmt, e); } } @Override + // FIXME: propagate original? public final NotificationEffectiveStatement copyEffective(final Current stmt, final NotificationEffectiveStatement original) { - return new NotificationEffectiveStatementImpl((NotificationEffectiveStatementImpl) original, - stmt.effectivePath(), + return EffectiveStatements.copyNotification(original, stmt.effectivePath(), EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), original.effectiveSubstatements())); } } \ No newline at end of file diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/PatternStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/PatternStatementSupport.java index 540415e9f2..26fb656a31 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/PatternStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/pattern/PatternStatementSupport.java @@ -21,6 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.PatternExpression; import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -92,7 +93,6 @@ public final class PatternStatementSupport @Override protected PatternEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyPatternEffectiveStatement(stmt.declared()) - : new RegularPatternEffectiveStatement(stmt.declared(), substatements); + return EffectiveStatements.createPattern(stmt.declared(), substatements); } } -- 2.36.6