Hide RangeEffectiveStatementImpl 20/89120/2
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 18 Apr 2020 09:14:21 +0000 (11:14 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 18 Apr 2020 09:28:04 +0000 (11:28 +0200)
We do not want to leak an implementation class across statements,
hence we are hiding it. In order to keep things working, update
RangeEffectiveStatement to extend ConstraintMetaDefinition.

Change-Id: I056f93f4d3cef95f431d9f21423c8f8fa46f8a47
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RangeEffectiveStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/range/RangeEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationEffectiveStatement.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/DecimalTypeEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/IntegralTypeEffectiveStatementImpl.java

index 8fcb58039fa7c55c62a23fca8e4875c0c165d15c..89685dccf24ba97ca59a4def738d8e7f029748b1 100644 (file)
@@ -9,9 +9,13 @@ package org.opendaylight.yangtools.yang.model.api.stmt;
 
 import com.google.common.annotations.Beta;
 import java.util.List;
+import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 
 @Beta
-public interface RangeEffectiveStatement extends EffectiveStatement<List<ValueRange>, RangeStatement> {
+public interface RangeEffectiveStatement extends EffectiveStatement<List<ValueRange>, RangeStatement>,
+    // FIXME: 6.0.0: reconsider this interface extension
+    // FIXME: 6.0.0: if we are keeping it, consider a default implementation (shared with others effective statements)
+    ConstraintMetaDefinition {
 
 }
index acc0df2fc539599b7c31fa1bda5d22bcb8d882ca..6684679fdfb236dea341e415c38d24af034368cf 100644 (file)
@@ -14,9 +14,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ValueRange;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractListConstraintEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
-// FIXME: 5.0.0: hide this class
-public final class RangeEffectiveStatementImpl
-        extends AbstractListConstraintEffectiveStatement<ValueRange, RangeStatement>
+final class RangeEffectiveStatementImpl extends AbstractListConstraintEffectiveStatement<ValueRange, RangeStatement>
         implements RangeEffectiveStatement {
     RangeEffectiveStatementImpl(final StmtContext<List<ValueRange>, RangeStatement, ?> ctx) {
         super(ctx);
index d138988d3ae5903e3215e26ac3b1c17cdbe3109c..8f95263137393da58f2b42042c60fcc5c5514b70 100644 (file)
@@ -11,13 +11,13 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.Decimal64Specification;
 import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.type.DecimalTypeBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.DeclaredEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range.RangeEffectiveStatementImpl;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 final class Decimal64SpecificationEffectiveStatement
@@ -35,8 +35,8 @@ final class Decimal64SpecificationEffectiveStatement
             if (stmt instanceof FractionDigitsEffectiveStatement) {
                 builder.setFractionDigits(((FractionDigitsEffectiveStatement) stmt).argument());
             }
-            if (stmt instanceof RangeEffectiveStatementImpl) {
-                final RangeEffectiveStatementImpl range = (RangeEffectiveStatementImpl) stmt;
+            if (stmt instanceof RangeEffectiveStatement) {
+                final RangeEffectiveStatement range = (RangeEffectiveStatement) stmt;
                 builder.setRangeConstraint(range, range.argument());
             }
             if (stmt instanceof UnknownSchemaNode) {
index b5f8c4ca412d6a2040e45c0236e31b5178d2c54b..ce809bb5294103da3e42bf2afe692c8eae126d51 100644 (file)
@@ -12,13 +12,13 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.FractionDigitsEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.type.RangeRestrictedTypeBuilder;
 import org.opendaylight.yangtools.yang.model.util.type.RestrictedTypes;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.DeclaredEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range.RangeEffectiveStatementImpl;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
@@ -35,8 +35,8 @@ final class DecimalTypeEffectiveStatementImpl extends DeclaredEffectiveStatement
                 RestrictedTypes.newDecima64Builder(baseType, AbstractTypeStatementSupport.typeEffectiveSchemaPath(ctx));
 
         for (EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
-            if (stmt instanceof RangeEffectiveStatementImpl) {
-                final RangeEffectiveStatementImpl range = (RangeEffectiveStatementImpl) stmt;
+            if (stmt instanceof RangeEffectiveStatement) {
+                final RangeEffectiveStatement range = (RangeEffectiveStatement) stmt;
                 builder.setRangeConstraint(range, range.argument());
             }
             if (stmt instanceof FractionDigitsEffectiveStatement) {
index f21438957ae9eb7a0c3b48d455bcb1b2bff3be48..6f8eca6f88432b83dcf17fe5136fe6715ebd62bd 100644 (file)
@@ -10,13 +10,13 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.model.api.type.RangeRestrictedTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.type.InvalidRangeConstraintException;
 import org.opendaylight.yangtools.yang.model.util.type.RangeRestrictedTypeBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.DeclaredEffectiveStatementBase;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.range.RangeEffectiveStatementImpl;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
@@ -32,8 +32,8 @@ final class IntegralTypeEffectiveStatementImpl<T extends RangeRestrictedTypeDefi
         super(ctx);
 
         for (EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
-            if (stmt instanceof RangeEffectiveStatementImpl) {
-                final RangeEffectiveStatementImpl rangeStmt = (RangeEffectiveStatementImpl)stmt;
+            if (stmt instanceof RangeEffectiveStatement) {
+                final RangeEffectiveStatement rangeStmt = (RangeEffectiveStatement)stmt;
                 builder.setRangeConstraint(rangeStmt, rangeStmt.argument());
             }
             if (stmt instanceof UnknownSchemaNode) {