+ @SuppressWarnings("null") // explicit checks for null are in place
+ public void setRange(BitVector minimalValue, BitVector maximalValue)
+ {
+ boolean minIsNull = minimalValue == null;
+ if (minIsNull != (maximalValue == null))
+ throw new IllegalArgumentException("minimalValue and maximalValue must either both be null or both non-null");
+ if (!minIsNull)
+ {
+ if (!minimalValue.isBinary())
+ throw new IllegalArgumentException("minimalValue is not binary");
+ if (!maximalValue.isBinary())
+ throw new IllegalArgumentException("maximalValue is not binary");
+ this.minimalValueBigInteger = minimalValue.getUnsignedValue();
+ this.maximalValueBigInteger = maximalValue.getUnsignedValue();
+ }
+ this.minimalValue = minimalValue;
+ this.maximalValue = maximalValue;
+ }
+
+ public BitVector getMinimalValue()
+ {
+ return minimalValue;
+ }
+
+ public BitVector getMaximalValue()
+ {
+ return maximalValue;
+ }
+