From: Robert Varga Date: Mon, 8 Mar 2021 08:13:50 +0000 (+0100) Subject: Move 'must' statement implementations X-Git-Tag: v7.0.0~77 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=4d32a5e233d2ef6b2255cae96c0896d035e436a3;p=yangtools.git Move 'must' statement implementations These are quite simple, move them out. JIRA: YANGTOOLS-1241 Change-Id: I831799c52063c3c037eedb14a502eb2f7eeb6f67 Signed-off-by: Robert Varga --- 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 1c510dee32..57d57c96b3 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 @@ -96,6 +96,8 @@ import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsEffectiveStatem import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement; 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.MustEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement; 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; @@ -183,6 +185,7 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMandatoryEffe import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMaxElementsEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMinElementsEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyModifierEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyMustEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyNamespaceEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyOrderedByEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.EmptyOrganizationEffectiveStatement; @@ -231,6 +234,7 @@ import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMandatoryEf import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMaxElementsEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMinElementsEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularModifierEffectiveStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularMustEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularNamespaceEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularOrderedByEffectiveStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff.RegularOrganizationEffectiveStatement; @@ -594,6 +598,12 @@ public final class EffectiveStatements { : new RegularModifierEffectiveStatement(declared, substatements); } + public static MustEffectiveStatement createMust(final MustStatement declared, + final ImmutableList> substatements) { + return substatements.isEmpty() ? new EmptyMustEffectiveStatement(declared) + : new RegularMustEffectiveStatement(declared, substatements); + } + public static NamespaceEffectiveStatement createNamespace(final NamespaceStatement declared, final ImmutableList> substatements) { return substatements.isEmpty() ? new EmptyNamespaceEffectiveStatement(declared) diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/EmptyMustEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyMustEffectiveStatement.java similarity index 73% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/EmptyMustEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyMustEffectiveStatement.java index 06f52c0962..5331f2d80d 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/EmptyMustEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyMustEffectiveStatement.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.must; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument; import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound; -final class EmptyMustEffectiveStatement extends DefaultArgument +public final class EmptyMustEffectiveStatement extends DefaultArgument implements MustDefinitionMixin { - EmptyMustEffectiveStatement(final MustStatement declared) { + public EmptyMustEffectiveStatement(final MustStatement declared) { super(declared); } } diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustDefinitionMixin.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/MustDefinitionMixin.java similarity index 93% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustDefinitionMixin.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/MustDefinitionMixin.java index cfaf36b012..0c704a5302 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustDefinitionMixin.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/MustDefinitionMixin.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.must; +package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff; import org.opendaylight.yangtools.yang.model.api.MustDefinition; import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/RegularMustEffectiveStatement.java b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularMustEffectiveStatement.java similarity index 78% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/RegularMustEffectiveStatement.java rename to yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularMustEffectiveStatement.java index 79bb813d26..092cede44d 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/RegularMustEffectiveStatement.java +++ b/yang/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularMustEffectiveStatement.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.must; +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.MustStatement; import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements; import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound; -final class RegularMustEffectiveStatement extends WithSubstatements +public final class RegularMustEffectiveStatement extends WithSubstatements implements MustDefinitionMixin { - RegularMustEffectiveStatement(final MustStatement declared, + public RegularMustEffectiveStatement(final MustStatement declared, final ImmutableList> substatements) { super(declared, substatements); } 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 755b1a3b97..4fcec271a6 100644 --- a/yang/yang-parser-rfc7950/src/main/java/module-info.java +++ b/yang/yang-parser-rfc7950/src/main/java/module-info.java @@ -43,7 +43,6 @@ module org.opendaylight.yangtools.yang.parser.rfc7950 { 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.path; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine; exports org.opendaylight.yangtools.yang.parser.rfc7950.stmt.submodule; 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 7bb2ee5b0f..2bd7201c3f 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 @@ -63,6 +63,7 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MandatoryStateme import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MaxElementsStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MinElementsStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.ModifierStatementSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.MustStatementSupport; 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; @@ -86,7 +87,6 @@ import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.YangVersionState import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.YinElementStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleStatementSupport; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.QNameModuleNamespace; -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.path.PathStatementSupport; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/MustStatementSupport.java similarity index 93% rename from yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustStatementSupport.java rename to yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/MustStatementSupport.java index 1bb2e5190e..3c68869b80 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/must/MustStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/MustStatementSupport.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.must; +package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta; import static java.util.Objects.requireNonNull; @@ -17,6 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.MustEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; +import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.XPathSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -65,7 +66,6 @@ public final class MustStatementSupport @Override protected MustEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { - return substatements.isEmpty() ? new EmptyMustEffectiveStatement(stmt.declared()) - : new RegularMustEffectiveStatement(stmt.declared(), substatements); + return EffectiveStatements.createMust(stmt.declared(), substatements); } } \ No newline at end of file