Author: tv
Date: Fri Apr 17 14:26:31 2015
New Revision: 1674319
URL: http://svn.apache.org/r1674319
Log:
Use enum
Modified:
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerRangeValidator.java
Modified:
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java?rev=1674319&r1=1674318&r2=1674319&view=diff
==============================================================================
---
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java
(original)
+++
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/CompareCallback.java
Fri Apr 17 14:26:31 2015
@@ -1,5 +1,7 @@
package org.apache.fulcrum.intake.validator;
+import org.apache.fulcrum.intake.validator.FieldReference.Comparison;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -36,5 +38,5 @@ public interface CompareCallback<T>
*
* @return the result of the comparison
*/
- public boolean compareValues(int compare, T thisValue, T refValue);
+ public boolean compareValues(Comparison compare, T thisValue, T refValue);
}
Modified:
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java?rev=1674319&r1=1674318&r2=1674319&view=diff
==============================================================================
---
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java
(original)
+++
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/DateRangeValidator.java
Fri Apr 17 14:26:31 2015
@@ -28,6 +28,7 @@ import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.fulcrum.intake.model.Field;
import org.apache.fulcrum.intake.model.Group;
+import org.apache.fulcrum.intake.validator.FieldReference.Comparison;
/**
* Validates a DateString field in dependency on another DateString field.
@@ -102,25 +103,25 @@ public class DateRangeValidator
* @return the result of the comparison
*/
@Override
- public boolean compareValues(int compare, Date
thisValue, Date refValue)
+ public boolean compareValues(Comparison
compare, Date thisValue, Date refValue)
{
boolean result = true;
switch (compare)
{
- case FieldReference.COMPARE_LT:
+ case LT:
result = thisValue.before(refValue);
break;
- case FieldReference.COMPARE_LTE:
+ case LTE:
result = !thisValue.after(refValue);
break;
- case FieldReference.COMPARE_GT:
+ case GT:
result = thisValue.after(refValue);
break;
- case FieldReference.COMPARE_GTE:
+ case GTE:
result = !thisValue.before(refValue);
break;
}
@@ -136,13 +137,13 @@ public class DateRangeValidator
String key = entry.getKey();
Constraint constraint = entry.getValue();
- int compare = FieldReference.getCompareType(key);
+ Comparison compare = FieldReference.getComparisonType(key);
- if (compare != 0)
+ if (compare != null)
{
// found matching constraint
FieldReference fieldref = new FieldReference();
- fieldref.setCompare(compare);
+ fieldref.setComparison(compare);
fieldref.setFieldName(constraint.getValue());
fieldref.setMessage(constraint.getMessage());
Modified:
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FieldReference.java?rev=1674319&r1=1674318&r2=1674319&view=diff
==============================================================================
---
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
(original)
+++
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/FieldReference.java
Fri Apr 17 14:26:31 2015
@@ -60,32 +60,52 @@ import org.apache.fulcrum.intake.model.G
*/
public class FieldReference
{
- /** Rule name for "<" comparison */
- public static final String RANGE_LT = "less-than";
-
- /** Rule name for ">" comparison */
- public static final String RANGE_GT = "greater-than";
-
- /** Rule name for "<=" comparison */
- public static final String RANGE_LTE = "less-than-or-equal";
-
- /** Rule name for ">=" comparison */
- public static final String RANGE_GTE = "greater-than-or-equal";
-
- /** Integer value for "<" comparison */
- public static final int COMPARE_LT = 1;
-
- /** Integer value for ">" comparison */
- public static final int COMPARE_GT = 2;
-
- /** Integer value for "<=" comparison */
- public static final int COMPARE_LTE = 3;
-
- /** Integer value for ">=" comparison */
- public static final int COMPARE_GTE = 4;
+ public static enum Comparison
+ {
+ /** Rule for "<" comparison */
+ LT ("less-than"),
+
+ /** Rule for ">" comparison */
+ GT ("greater-than"),
+
+ /** Rule for "<=" comparison */
+ LTE ("less-than-or-equal"),
+
+ /** Rule for ">=" comparison */
+ GTE ("greater-than-or-equal");
+
+ private final String text;
+
+ private Comparison(String text)
+ {
+ this.text = text;
+ }
+
+ @Override
+ public String toString()
+ {
+ return text;
+ }
+
+ public static Comparison fromString(String string)
+ {
+ if (string != null)
+ {
+ for (Comparison c : Comparison.values())
+ {
+ if (string.equals(c.text))
+ {
+ return c;
+ }
+ }
+ }
+
+ return null;
+ }
+ }
/** Numeric comparison */
- private int compare = 0;
+ private Comparison compare = null;
/** Name of referenced field */
private String fieldName = null;
@@ -104,7 +124,7 @@ public class FieldReference
/**
* @return the comparison type
*/
- public int getCompare()
+ public Comparison getComparison()
{
return compare;
}
@@ -112,7 +132,7 @@ public class FieldReference
/**
* @param compare the comparison type to set
*/
- public void setCompare(int compare)
+ public void setComparison(Comparison compare)
{
this.compare = compare;
}
@@ -155,28 +175,9 @@ public class FieldReference
* @param key the string representation of a comparison operator
* @return the numeric representation of the given comparison operator
*/
- public static int getCompareType(String key)
+ public static Comparison getComparisonType(String key)
{
- int compareType = 0;
-
- if (key.equals(RANGE_LT))
- {
- compareType = COMPARE_LT;
- }
- else if (key.equals(RANGE_LTE))
- {
- compareType = COMPARE_LTE;
- }
- else if (key.equals(RANGE_GT))
- {
- compareType = COMPARE_GT;
- }
- else if (key.equals(RANGE_GTE))
- {
- compareType = COMPARE_GTE;
- }
-
- return compareType;
+ return Comparison.fromString(key);
}
/**
@@ -216,7 +217,7 @@ public class FieldReference
if (refField.isValid())
{
- comp_true =
compareCallback.compareValues(ref.getCompare(),
+ comp_true =
compareCallback.compareValues(ref.getComparison(),
value,
refField.getValue());
}
Modified:
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerRangeValidator.java
URL:
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerRangeValidator.java?rev=1674319&r1=1674318&r2=1674319&view=diff
==============================================================================
---
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerRangeValidator.java
(original)
+++
turbine/fulcrum/trunk/intake/src/java/org/apache/fulcrum/intake/validator/IntegerRangeValidator.java
Fri Apr 17 14:26:31 2015
@@ -21,11 +21,13 @@ package org.apache.fulcrum.intake.valida
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.fulcrum.intake.model.Field;
import org.apache.fulcrum.intake.model.Group;
+import org.apache.fulcrum.intake.validator.FieldReference.Comparison;
/**
* Validates an int field in dependency on another int field.
@@ -100,25 +102,25 @@ public class IntegerRangeValidator
* @return the result of the comparison
*/
@Override
- public boolean compareValues(int compare,
Integer thisValue, Integer refValue)
+ public boolean compareValues(Comparison
compare, Integer thisValue, Integer refValue)
{
boolean result = true;
switch (compare)
{
- case FieldReference.COMPARE_LT:
+ case LT:
result = thisValue.compareTo(refValue) < 0;
break;
- case FieldReference.COMPARE_LTE:
+ case LTE:
result = thisValue.compareTo(refValue) <= 0;
break;
- case FieldReference.COMPARE_GT:
+ case GT:
result = thisValue.compareTo(refValue) > 0;
break;
- case FieldReference.COMPARE_GTE:
+ case GTE:
result = thisValue.compareTo(refValue) >= 0;
break;
}
@@ -134,13 +136,13 @@ public class IntegerRangeValidator
String key = entry.getKey();
Constraint constraint = entry.getValue();
- int compare = FieldReference.getCompareType(key);
+ Comparison compare = FieldReference.getComparisonType(key);
- if (compare != 0)
+ if (compare != null)
{
// found matching constraint
FieldReference fieldref = new FieldReference();
- fieldref.setCompare(compare);
+ fieldref.setComparison(compare);
fieldref.setFieldName(constraint.getValue());
fieldref.setMessage(constraint.getMessage());
@@ -169,6 +171,7 @@ public class IntegerRangeValidator
super.assertValidity(testField);
Group thisGroup = testField.getGroup();
+ Locale locale = testField.getLocale();
if (testField.isMultiValued())
{
@@ -176,14 +179,14 @@ public class IntegerRangeValidator
for (int i = 0; i < stringValues.length; i++)
{
- assertValidity(stringValues[i], thisGroup);
+ assertValidity(stringValues[i], thisGroup, locale);
}
}
else
{
String testValue = (String)testField.getTestValue();
- assertValidity(testValue, thisGroup);
+ assertValidity(testValue, thisGroup, locale);
}
}
@@ -193,16 +196,27 @@ public class IntegerRangeValidator
*
* @param testValue a <code>String</code> to be tested
* @param group the group this field belongs to
+ * @param locale the locale for this field
*
* @exception ValidationException containing an error message if the
* testValue did not pass the validation tests.
*/
- public void assertValidity(final String testValue, final Group group)
+ public void assertValidity(final String testValue, final Group group,
final Locale locale)
throws ValidationException
{
if (required || StringUtils.isNotEmpty(testValue))
{
- Integer testInt = new Integer(testValue);
+ Integer testInt;
+
+ try
+ {
+ testInt = parseNumber(testValue, locale);
+ }
+ catch (NumberFormatException e)
+ {
+ errorMessage = invalidNumberMessage;
+ throw new
ValidationException(invalidNumberMessage);
+ }
try
{