Return-Path: X-Original-To: apmail-struts-commits-archive@minotaur.apache.org Delivered-To: apmail-struts-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 60AD3DED9 for ; Sun, 13 Jan 2013 12:08:47 +0000 (UTC) Received: (qmail 87266 invoked by uid 500); 13 Jan 2013 12:08:46 -0000 Delivered-To: apmail-struts-commits-archive@struts.apache.org Received: (qmail 86936 invoked by uid 500); 13 Jan 2013 12:08:45 -0000 Mailing-List: contact commits-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list commits@struts.apache.org Received: (qmail 86891 invoked by uid 99); 13 Jan 2013 12:08:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Jan 2013 12:08:43 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 13 Jan 2013 12:08:40 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 47F8923888EA; Sun, 13 Jan 2013 12:08:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1432595 - in /struts/struts2/trunk/xwork-core/src: main/java/com/opensymphony/xwork2/validator/validators/StringLengthFieldValidator.java test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java Date: Sun, 13 Jan 2013 12:08:20 -0000 To: commits@struts.apache.org From: lukaszlenart@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130113120820.47F8923888EA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: lukaszlenart Date: Sun Jan 13 12:08:19 2013 New Revision: 1432595 URL: http://svn.apache.org/viewvc?rev=1432595&view=rev Log: WW-3893 adds optional to params to define minLength, maxLength and trim params as an OGNL expression Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/StringLengthFieldValidator.java struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/StringLengthFieldValidator.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/StringLengthFieldValidator.java?rev=1432595&r1=1432594&r2=1432595&view=diff ============================================================================== --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/StringLengthFieldValidator.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/StringLengthFieldValidator.java Sun Jan 13 12:08:19 2013 @@ -31,14 +31,17 @@ import com.opensymphony.xwork2.validator * *
    *
  • fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required
  • - *
  • maxLength - The max length of the field value. Default ignore. Can be specified as OGNL expression when parse is set to true.
  • - *
  • minLength - The min length of the field value. Default ignore. Can be specified as OGNL expression when parse is set to true.
  • - *
  • trim - Trim the field value before evaluating its min/max length. Default true. Can be specified as OGNL expression when parse is set to true.
  • + *
  • maxLength - Integer. The max length of the field value. Default ignore.
  • + *
  • minLength - Integer. The min length of the field value. Default ignore.
  • + *
  • trim - (Optional) Boolean, default true. Trim the field value before evaluating its min/max length. Default true.
  • + *
  • maxLengthExpression - (Optional) String. Defines the max length param as an OGNL expression
  • + *
  • minLengthExpression - (Optional) String. Defines the min length param as an OGNL expression
  • + *
  • trimExpression - (Optional) String. Defines th trim param as an OGNL expression
  • *
* * * - * Do not use ${minLength}, ${maxLength} and ${trim} as an expression as this will turn into infinitive loop! + * Do not use ${minLengthExpression}, ${maxLengthExpression} and ${trimExpression} as an expression as this will turn into infinitive loop! * * *
@@ -66,10 +69,9 @@ import com.opensymphony.xwork2.validator
  *     <!-- Field Validator Syntax with expression -->
  *     <field name="myPurchaseCode">
  *         <field-validator type="stringlength">
- *              <param name="parse">true</param>
- *              <param name="minLength">${minLengthValue}</param> <!-- will be evaluated as: Integer getMinLengthValue() -->
- *              <param name="maxLength">${maxLengthValue}</param> <!-- will be evaluated as: Integer getMaxLengthValue() -->
- *              <param name="trim">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() -->
+ *              <param name="minLengthExpression">${minLengthValue}</param> <!-- will be evaluated as: Integer getMinLengthValue() -->
+ *              <param name="maxLengthExpression">${maxLengthValue}</param> <!-- will be evaluated as: Integer getMaxLengthValue() -->
+ *              <param name="trimExpression">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() -->
  *              <message>Your purchase code needs to be 10 characters long</message>
  *         </field-validator>
  *     </field>
@@ -89,36 +91,36 @@ public class StringLengthFieldValidator 
     private int maxLength = -1;
     private int minLength = -1;
 
-    public void setMaxLength(String maxLength) {
-        if (parse) {
-            this.maxLength = (Integer) parse(maxLength, Integer.class);
-        } else {
-            this.maxLength = Integer.valueOf(maxLength);
-        }
+    public void setMaxLength(int maxLength) {
+        this.maxLength = maxLength;
+    }
+
+    public void setMaxLengthExpression(String maxLengthExpression) {
+        this.maxLength = (Integer) parse(maxLengthExpression, Integer.class);
     }
 
     public int getMaxLength() {
         return maxLength;
     }
 
-    public void setMinLength(String minLength) {
-        if (parse) {
-            this.minLength = (Integer) parse(minLength, Integer.class);
-        } else {
-            this.minLength = Integer.parseInt(minLength);
-        }
+    public void setMinLength(int minLength) {
+        this.minLength = minLength;
+    }
+
+    public void setMinLengthExpression(String minLengthExpression) {
+        this.minLength = (Integer) parse(minLengthExpression, Integer.class);
     }
 
     public int getMinLength() {
         return minLength;
     }
 
-    public void setTrim(String trim) {
-        if (parse) {
-            this.trim = (Boolean) parse(trim, Boolean.class);
-        } else {
-            this.trim = Boolean.parseBoolean(trim);
-        }
+    public void setTrim(boolean trim) {
+        this.trim = trim;
+    }
+
+    public void setTrimExpression(String trimExpression) {
+        this.trim = (Boolean) parse(trimExpression, Boolean.class);
     }
 
     public boolean isTrim() {

Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java?rev=1432595&r1=1432594&r2=1432595&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java (original)
+++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java Sun Jan 13 12:08:19 2013
@@ -34,7 +34,7 @@ public class StringLengthFieldValidatorT
 	public void testStringLengthEmptyNoTrim1() throws Exception {
 		action.setMyField("");
 		
-		validator.setTrim("false");
+		validator.setTrim(false);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "");
@@ -44,7 +44,7 @@ public class StringLengthFieldValidatorT
 	public void testStringLengthNullNoTrim() throws Exception {
 		action.setMyField(null);
 
-		validator.setTrim("false");
+		validator.setTrim(false);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), null);
@@ -54,7 +54,7 @@ public class StringLengthFieldValidatorT
 	public void testStringLengthEmptyTrim1() throws Exception {
 		action.setMyField("   ");
 		
-		validator.setTrim("true");
+		validator.setTrim(true);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "   ");
@@ -64,7 +64,7 @@ public class StringLengthFieldValidatorT
 	public void testStringLengthEmptyNoTrim2() throws Exception {
 		action.setMyField("          ");
 		
-		validator.setTrim("false");
+		validator.setTrim(false);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "          ");
@@ -75,7 +75,7 @@ public class StringLengthFieldValidatorT
 	public void testStringLengthNullTrim() throws Exception {
 		action.setMyField(null);
 
-		validator.setTrim("true");
+		validator.setTrim(true);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), null);
@@ -85,7 +85,7 @@ public class StringLengthFieldValidatorT
 	public void testInvalidStringLengthNoTrim() throws Exception {
 		action.setMyField("abcdefghijklmn");
 		
-		validator.setTrim("false");
+		validator.setTrim(false);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "abcdefghijklmn");
@@ -95,7 +95,7 @@ public class StringLengthFieldValidatorT
 	public void testInvalidStringLengthTrim() throws Exception {
 		action.setMyField("abcdefghijklmn   ");
 		
-		validator.setTrim("true");
+		validator.setTrim(true);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "abcdefghijklmn   ");
@@ -105,7 +105,7 @@ public class StringLengthFieldValidatorT
 	public void testValidStringLengthNoTrim() throws Exception {
 		action.setMyField("   ");
 		
-		validator.setTrim("false");
+		validator.setTrim(false);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "   ");
@@ -115,7 +115,7 @@ public class StringLengthFieldValidatorT
 	public void testValidStringLengthTrim() throws Exception {
 		action.setMyField("asd          ");
 		
-		validator.setTrim("true");
+		validator.setTrim(true);
 		validator.validate(action);
 		
 		assertEquals(action.getMyField(), "asd          ");
@@ -126,8 +126,7 @@ public class StringLengthFieldValidatorT
         assertEquals(2, validator.getMinLength());
         action.setMinLengthValue(10);
 
-        validator.setParse(true);
-        validator.setMinLength("${minLengthValue}");
+        validator.setMinLengthExpression("${minLengthValue}");
 
         assertEquals(10, validator.getMinLength());
     }
@@ -136,8 +135,7 @@ public class StringLengthFieldValidatorT
         assertEquals(5, validator.getMaxLength());
         action.setMaxLengthValue(100);
 
-        validator.setParse(true);
-        validator.setMaxLength("${maxLengthValue}");
+        validator.setMaxLengthExpression("${maxLengthValue}");
 
         assertEquals(100, validator.getMaxLength());
     }
@@ -146,8 +144,7 @@ public class StringLengthFieldValidatorT
         assertTrue(validator.isTrim());
         action.setTrimValue(false);
 
-        validator.setParse(true);
-        validator.setTrim("${trimValue}");
+        validator.setTrimExpression("${trimValue}");
 
         assertFalse(validator.isTrim());
     }
@@ -164,8 +161,8 @@ public class StringLengthFieldValidatorT
 		validator.setFieldName("myField");
 		validator.setMessageKey("error");
 		validator.setValidatorContext(new DelegatingValidatorContext(action));
-		validator.setMaxLength("5");
-		validator.setMinLength("2");
+		validator.setMaxLength(5);
+		validator.setMinLength(2);
         validator.setValueStack(valueStack);
     }