X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-model-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fmodel%2Futil%2Ftype%2FAbstractRangeRestrictedBaseType.java;h=895400b9be9a1939c15723f97537cf9dc6f775f0;hb=b246beeb2931748a264f188b914039a3ad3d5096;hp=0badaf2501d516137685603a07ea107d54d374da;hpb=c3bb225b72f0d6201de21720ca378660d9fa8f30;p=yangtools.git diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractRangeRestrictedBaseType.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractRangeRestrictedBaseType.java index 0badaf2501..895400b9be 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractRangeRestrictedBaseType.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/type/AbstractRangeRestrictedBaseType.java @@ -7,36 +7,62 @@ */ package org.opendaylight.yangtools.yang.model.util.type; -import com.google.common.collect.ImmutableList; +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.ImmutableRangeSet; +import com.google.common.collect.Range; import java.util.List; import java.util.Optional; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint; import org.opendaylight.yangtools.yang.model.api.type.RangeRestrictedTypeDefinition; -import org.opendaylight.yangtools.yang.model.util.BaseConstraints; -abstract class AbstractRangeRestrictedBaseType> extends AbstractBaseType - implements RangeRestrictedTypeDefinition { - private final List rangeConstraints; +abstract class AbstractRangeRestrictedBaseType, + C extends Number & Comparable> extends AbstractBaseType implements RangeRestrictedTypeDefinition { + private static final ConstraintMetaDefinition BUILTIN_CONSTRAINT = new ConstraintMetaDefinition() { + + @Override + public Optional getReference() { + return Optional.empty(); + } + + @Override + public Optional getDescription() { + return Optional.empty(); + } + + @Override + public Optional getErrorMessage() { + return Optional.empty(); + } + + @Override + public Optional getErrorAppTag() { + return Optional.empty(); + } + }; + + private final RangeConstraint rangeConstraint; - AbstractRangeRestrictedBaseType(final QName qname, final Number minValue, final Number maxValue) { + AbstractRangeRestrictedBaseType(final QName qname, final C minValue, final C maxValue) { super(qname); - this.rangeConstraints = ImmutableList.of(BaseConstraints.newRangeConstraint( - minValue, maxValue, Optional.empty(), Optional.empty())); + this.rangeConstraint = new ResolvedRangeConstraint<>(BUILTIN_CONSTRAINT, ImmutableRangeSet.of( + Range.closed(minValue, maxValue))); } AbstractRangeRestrictedBaseType(final SchemaPath path, final List unknownSchemaNodes, - final List rangeConstraints) { + final RangeConstraint rangeConstraint) { super(path, unknownSchemaNodes); - this.rangeConstraints = ImmutableList.copyOf(rangeConstraints); + this.rangeConstraint = requireNonNull(rangeConstraint); } @Override @Nonnull - public final List getRangeConstraints() { - return rangeConstraints; + public final Optional> getRangeConstraint() { + return Optional.of(rangeConstraint); } }