You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/07/11 22:21:59 UTC
git commit: WW-4167 Renames based class to match the rest based
classes and marks extending validators as final to avoid users' confusion
Repository: struts
Updated Branches:
refs/heads/develop 1dcf58537 -> 351263a67
WW-4167 Renames based class to match the rest based classes
and marks extending validators as final to avoid users' confusion
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/351263a6
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/351263a6
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/351263a6
Branch: refs/heads/develop
Commit: 351263a679dd72dc30e700d7eeed77f89e5bafac
Parents: 1dcf585
Author: Lukasz Lenart <lu...@apache.org>
Authored: Fri Jul 11 22:21:36 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Fri Jul 11 22:21:36 2014 +0200
----------------------------------------------------------------------
.../validators/AbstractRangeValidator.java | 110 -------------------
.../validators/DateRangeFieldValidator.java | 2 +-
.../validators/IntRangeFieldValidator.java | 2 +-
.../validators/LongRangeFieldValidator.java | 2 +-
.../validators/RangeValidatorSupport.java | 106 ++++++++++++++++++
.../validators/ShortRangeFieldValidator.java | 2 +-
6 files changed, 110 insertions(+), 114 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/351263a6/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java
deleted file mode 100644
index aa17a0e..0000000
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 2002-2006,2009 The Apache Software Foundation.
- *
- * 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 com.opensymphony.xwork2.validator.validators;
-
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
-import com.opensymphony.xwork2.validator.ValidationException;
-import org.apache.commons.lang3.StringUtils;
-
-
-/**
- * Base class for range based validators.
- *
- * @author Jason Carreira
- * @author Cameron Braid
- */
-public abstract class AbstractRangeValidator<T extends Comparable> extends FieldValidatorSupport {
-
- private static final Logger LOG = LoggerFactory.getLogger(AbstractRangeValidator.class);
-
- private final Class<T> type;
-
- private T min;
- private String minExpression;
- private T max;
- private String maxExpression;
-
- protected AbstractRangeValidator(Class<T> type) {
- this.type = type;
- }
-
- public void validate(Object object) throws ValidationException {
- Object obj = getFieldValue(getFieldName(), object);
- Comparable<T> value = (Comparable<T>) obj;
-
- // if there is no value - don't do comparison
- // if a value is required, a required validator should be added to the field
- if (value == null) {
- return;
- }
-
- // only check for a minimum value if the min parameter is set
- T minComparatorValue = getMin();
- if ((minComparatorValue != null) && (value.compareTo(minComparatorValue) < 0)) {
- addFieldError(getFieldName(), object);
- }
-
- // only check for a maximum value if the max parameter is set
- T maxComparatorValue = getMax();
- if ((maxComparatorValue != null) && (value.compareTo(maxComparatorValue) > 0)) {
- addFieldError(getFieldName(), object);
- }
- }
-
- public void setMin(T min) {
- this.min = min;
- }
-
- public T getMin() {
- if (min != null) {
- return min;
- } else if (StringUtils.isNotEmpty(minExpression)) {
- return (T) parse(minExpression, type);
- } else {
- return null;
- }
- }
-
- public void setMinExpression(String minExpression) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("${minExpression} was defined as [#0]", minExpression);
- }
- this.minExpression = minExpression;
- }
-
- public void setMax(T max) {
- this.max = max;
- }
-
- public T getMax() {
- if (max != null) {
- return max;
- } else if (StringUtils.isNotEmpty(maxExpression)) {
- return (T) parse(maxExpression, type);
- } else {
- return null;
- }
- }
-
- public void setMaxExpression(String maxExpression) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("${maxExpression} was defined as [#0]", maxExpression);
- }
- this.maxExpression = maxExpression;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/struts/blob/351263a6/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
index cee2987..572d307 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidator.java
@@ -86,7 +86,7 @@ import java.util.Date;
* @author Jason Carreira
* @version $Date$ $Id$
*/
-public class DateRangeFieldValidator extends AbstractRangeValidator<Date> {
+public final class DateRangeFieldValidator extends RangeValidatorSupport<Date> {
public DateRangeFieldValidator() {
super(Date.class);
http://git-wip-us.apache.org/repos/asf/struts/blob/351263a6/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
index dd3252f..bcc95d4 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidator.java
@@ -74,7 +74,7 @@ package com.opensymphony.xwork2.validator.validators;
* @author Jason Carreira
* @version $Date$ $Id$
*/
-public class IntRangeFieldValidator extends AbstractRangeValidator<Integer> {
+public final class IntRangeFieldValidator extends RangeValidatorSupport<Integer> {
public IntRangeFieldValidator() {
super(Integer.class);
http://git-wip-us.apache.org/repos/asf/struts/blob/351263a6/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
index a743aa9..d5503c3 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidator.java
@@ -73,7 +73,7 @@ package com.opensymphony.xwork2.validator.validators;
*
* @version $Date$
*/
-public class LongRangeFieldValidator extends AbstractRangeValidator<Long> {
+public final class LongRangeFieldValidator extends RangeValidatorSupport<Long> {
public LongRangeFieldValidator() {
super(Long.class);
http://git-wip-us.apache.org/repos/asf/struts/blob/351263a6/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/RangeValidatorSupport.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/RangeValidatorSupport.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/RangeValidatorSupport.java
new file mode 100644
index 0000000..22eb341
--- /dev/null
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/RangeValidatorSupport.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2002-2006,2009 The Apache Software Foundation.
+ *
+ * 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 com.opensymphony.xwork2.validator.validators;
+
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import com.opensymphony.xwork2.validator.ValidationException;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * Base class for range based validators. Use this class to develop any other custom range validators.
+ */
+public abstract class RangeValidatorSupport<T extends Comparable> extends FieldValidatorSupport {
+
+ private static final Logger LOG = LoggerFactory.getLogger(RangeValidatorSupport.class);
+
+ private final Class<T> type;
+
+ private T min;
+ private String minExpression;
+ private T max;
+ private String maxExpression;
+
+ protected RangeValidatorSupport(Class<T> type) {
+ this.type = type;
+ }
+
+ public void validate(Object object) throws ValidationException {
+ Object obj = getFieldValue(getFieldName(), object);
+ Comparable<T> value = (Comparable<T>) obj;
+
+ // if there is no value - don't do comparison
+ // if a value is required, a required validator should be added to the field
+ if (value == null) {
+ return;
+ }
+
+ // only check for a minimum value if the min parameter is set
+ T minComparatorValue = getMin();
+ if ((minComparatorValue != null) && (value.compareTo(minComparatorValue) < 0)) {
+ addFieldError(getFieldName(), object);
+ }
+
+ // only check for a maximum value if the max parameter is set
+ T maxComparatorValue = getMax();
+ if ((maxComparatorValue != null) && (value.compareTo(maxComparatorValue) > 0)) {
+ addFieldError(getFieldName(), object);
+ }
+ }
+
+ public void setMin(T min) {
+ this.min = min;
+ }
+
+ public T getMin() {
+ if (min != null) {
+ return min;
+ } else if (StringUtils.isNotEmpty(minExpression)) {
+ return (T) parse(minExpression, type);
+ } else {
+ return null;
+ }
+ }
+
+ public void setMinExpression(String minExpression) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("${minExpression} was defined as [#0]", minExpression);
+ }
+ this.minExpression = minExpression;
+ }
+
+ public void setMax(T max) {
+ this.max = max;
+ }
+
+ public T getMax() {
+ if (max != null) {
+ return max;
+ } else if (StringUtils.isNotEmpty(maxExpression)) {
+ return (T) parse(maxExpression, type);
+ } else {
+ return null;
+ }
+ }
+
+ public void setMaxExpression(String maxExpression) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("${maxExpression} was defined as [#0]", maxExpression);
+ }
+ this.maxExpression = maxExpression;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/351263a6/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
index b4bf866..24a20e2 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidator.java
@@ -73,7 +73,7 @@ package com.opensymphony.xwork2.validator.validators;
*
* @version $Date$
*/
-public class ShortRangeFieldValidator extends AbstractRangeValidator<Short> {
+public final class ShortRangeFieldValidator extends RangeValidatorSupport<Short> {
public ShortRangeFieldValidator() {
super(Short.class);