Use Decimal64.{min,max}ValueIn() in BaseDecimalType 03/100103/1
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 13 Mar 2022 14:32:51 +0000 (15:32 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 13 Mar 2022 14:33:41 +0000 (15:33 +0100)
Now that we have centralized range numbers, let's use them in
in yang-model-ri.

JIRA: YANGTOOLS-1405
Change-Id: Id8367366d6b11a10894ff88e3614024ce62b7050
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/type/BaseDecimalType.java

index 798f5ac616dfb780ead8c17dfb34825ef06365fc..e9c630c7d87e0a7cbeb0ed9232a1634dbd5da1c8 100644 (file)
@@ -46,29 +46,15 @@ final class BaseDecimalType extends AbstractRangeRestrictedBaseType<DecimalTypeD
         }
     };
 
-    private static final ImmutableList<RangeConstraint<Decimal64>> IMPLICIT_RANGE_STATEMENTS = ImmutableList.of(
-        createRangeConstraint("-922337203685477580.8", "922337203685477580.7"),
-        createRangeConstraint("-92233720368547758.08", "92233720368547758.07"),
-        createRangeConstraint("-9223372036854775.808", "9223372036854775.807"),
-        createRangeConstraint("-922337203685477.5808", "922337203685477.5807"),
-        createRangeConstraint("-92233720368547.75808", "92233720368547.75807"),
-        createRangeConstraint("-9223372036854.775808", "9223372036854.775807"),
-        createRangeConstraint("-922337203685.4775808", "922337203685.4775807"),
-        createRangeConstraint("-92233720368.54775808", "92233720368.54775807"),
-        createRangeConstraint("-9223372036.854775808", "9223372036.854775807"),
-        createRangeConstraint("-922337203.6854775808", "922337203.6854775807"),
-        createRangeConstraint("-92233720.36854775808", "92233720.36854775807"),
-        createRangeConstraint("-9223372.036854775808", "9223372.036854775807"),
-        createRangeConstraint("-922337.2036854775808", "922337.2036854775807"),
-        createRangeConstraint("-92233.72036854775808", "92233.72036854775807"),
-        createRangeConstraint("-9223.372036854775808", "9223.372036854775807"),
-        createRangeConstraint("-922.3372036854775808", "922.3372036854775807"),
-        createRangeConstraint("-92.23372036854775808", "92.23372036854775807"),
-        createRangeConstraint("-9.223372036854775808", "9.223372036854775807"));
-
-    private static RangeConstraint<Decimal64> createRangeConstraint(final String min, final String max) {
-        return new ResolvedRangeConstraint<>(BUILTIN_CONSTRAINT, ImmutableRangeSet.of(
-            Range.closed(Decimal64.valueOf(min), Decimal64.valueOf(max))));
+    private static final ImmutableList<RangeConstraint<Decimal64>> IMPLICIT_RANGE_STATEMENTS;
+
+    static {
+        final var builder = ImmutableList.<RangeConstraint<Decimal64>>builderWithExpectedSize(18);
+        for (int scale = 1; scale < 18; ++scale) {
+            builder.add(new ResolvedRangeConstraint<>(BUILTIN_CONSTRAINT, ImmutableRangeSet.of(Range.closed(
+                Decimal64.minValueIn(scale), Decimal64.maxValueIn(scale)))));
+        }
+        IMPLICIT_RANGE_STATEMENTS = builder.build();
     }
 
     static RangeConstraint<Decimal64> constraintsForDigits(final int fractionDigits) {