You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2014/04/18 16:20:08 UTC
svn commit: r1588477 - in
/pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation:
ComparableRangeValidator.java ComparableValidator.java
IntRangeValidator.java LongRangeValidator.java
Author: smartini
Date: Fri Apr 18 14:20:07 2014
New Revision: 1588477
URL: http://svn.apache.org/r1588477
Log:
PIVOT-944, backport (merge) from trunk
Added:
pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/LongRangeValidator.java
Modified:
pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableRangeValidator.java
pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableValidator.java
pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/IntRangeValidator.java
Modified: pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableRangeValidator.java
URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableRangeValidator.java?rev=1588477&r1=1588476&r2=1588477&view=diff
==============================================================================
--- pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableRangeValidator.java (original)
+++ pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableRangeValidator.java Fri Apr 18 14:20:07 2014
@@ -41,7 +41,7 @@ public class ComparableRangeValidator<T
setMinimum(minValue);
setMaximum(maxValue);
- if (maxValue.compareTo(minValue)< 0) {
+ if (maxValue.compareTo(minValue) < 0) {
throw new IllegalArgumentException("maxValue must be higher or equals than minValue");
}
}
@@ -62,8 +62,8 @@ public class ComparableRangeValidator<T
}
public void setMaximum(T maxValue) {
- if (minValue == null) {
- throw new IllegalArgumentException("minValue must be not null");
+ if (maxValue == null) {
+ throw new IllegalArgumentException("maxValue must be not null");
}
this.maxValue = maxValue;
}
@@ -85,7 +85,7 @@ public class ComparableRangeValidator<T
@Override
public String toString() {
- return ( this.getClass().getSimpleName() + "(" + minValue + "," + maxValue + ")" );
+ return (this.getClass().getSimpleName() + "(" + minValue + "," + maxValue + ")");
}
}
Modified: pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableValidator.java
URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableValidator.java?rev=1588477&r1=1588476&r2=1588477&view=diff
==============================================================================
--- pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableValidator.java (original)
+++ pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/ComparableValidator.java Fri Apr 18 14:20:07 2014
@@ -28,14 +28,6 @@ public class ComparableValidator<T exten
super(locale);
}
-// @Override
-// public boolean isValid(String text) {
-// if (!super.isValid(text))
-// return false;
-//
-// return true;
-// }
-
@Override
public boolean isValid(String text) {
boolean valid = false;
Modified: pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/IntRangeValidator.java
URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/IntRangeValidator.java?rev=1588477&r1=1588476&r2=1588477&view=diff
==============================================================================
--- pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/IntRangeValidator.java (original)
+++ pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/IntRangeValidator.java Fri Apr 18 14:20:07 2014
@@ -13,12 +13,13 @@
*/
package org.apache.pivot.wtk.validation;
+import java.math.BigInteger;
import java.util.Locale;
/**
- * A validator for an int value limited to a range.
- * <p>
- * Beware that usual math rules for native primitive types (and related approximations) are applied here.
+ * A validator for an <tt>int</tt> value limited to a range.
+ * <p> {@link BigInteger} math is used here so that proper checks against
+ * the limits of the type can be done.
*
* @see ComparableRangeValidator
*/
@@ -68,14 +69,13 @@ public class IntRangeValidator extends I
boolean valid = false;
if (super.isValid(text)) {
- final int i = textToObject(text);
- valid = (i >= minValue && i <= maxValue);
+ BigInteger min = BigInteger.valueOf((long)minValue);
+ BigInteger max = BigInteger.valueOf((long)maxValue);
+ BigInteger value = new BigInteger(text);
+ valid = value.compareTo(min) >= 0 && value.compareTo(max) <= 0;
}
return valid;
}
- private final Integer textToObject(String text) {
- return parseNumber(text).intValue();
- }
}
Added: pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/LongRangeValidator.java
URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/LongRangeValidator.java?rev=1588477&view=auto
==============================================================================
--- pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/LongRangeValidator.java (added)
+++ pivot/branches/2.0.x/wtk/src/org/apache/pivot/wtk/validation/LongRangeValidator.java Fri Apr 18 14:20:07 2014
@@ -0,0 +1,81 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pivot.wtk.validation;
+
+import java.math.BigInteger;
+import java.util.Locale;
+
+/**
+ * A validator for a <tt>long</tt> value limited to a range.
+ * <p> {@link BigInteger} math is used here so that proper checks against
+ * the limits of the type can be done.
+ *
+ * @see ComparableRangeValidator
+ */
+public class LongRangeValidator extends IntValidator {
+ private long minValue, maxValue;
+
+ public LongRangeValidator() {
+ this.minValue = Long.MIN_VALUE;
+ this.maxValue = Long.MAX_VALUE;
+ }
+
+ public LongRangeValidator(Locale locale) {
+ super(locale);
+ this.minValue = Long.MIN_VALUE;
+ this.maxValue = Long.MAX_VALUE;
+ }
+
+ public LongRangeValidator(long minValue, long maxValue) {
+ this.minValue = minValue;
+ this.maxValue = maxValue;
+ }
+
+ public LongRangeValidator(Locale locale, long minValue, long maxValue) {
+ super(locale);
+ this.minValue = minValue;
+ this.maxValue = maxValue;
+ }
+
+ public long getMinimum() {
+ return minValue;
+ }
+
+ public void setMinimum(long minValue) {
+ this.minValue = minValue;
+ }
+
+ public long getMaximum() {
+ return maxValue;
+ }
+
+ public void setMaximum(long maxValue) {
+ this.maxValue = maxValue;
+ }
+
+ @Override
+ public boolean isValid(String text) {
+ boolean valid = false;
+
+ if (super.isValid(text)) {
+ BigInteger min = BigInteger.valueOf(minValue);
+ BigInteger max = BigInteger.valueOf(maxValue);
+ BigInteger value = new BigInteger(text);
+ valid = value.compareTo(min) >= 0 && value.compareTo(max) <= 0;
+ }
+
+ return valid;
+ }
+
+}