You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ni...@apache.org on 2006/12/09 05:12:23 UTC

svn commit: r484909 - in /jakarta/commons/proper/validator/trunk/src: share/org/apache/commons/validator/routines/RegexValidator.java test/org/apache/commons/validator/routines/RegexValidatorTest.java

Author: niallp
Date: Fri Dec  8 20:12:21 2006
New Revision: 484909

URL: http://svn.apache.org/viewvc?view=rev&rev=484909
Log:
Don't create a StringBuffer for one group

Modified:
    jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java
    jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java

Modified: jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java?view=diff&rev=484909&r1=484908&r2=484909
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java (original)
+++ jakarta/commons/proper/validator/trunk/src/share/org/apache/commons/validator/routines/RegexValidator.java Fri Dec  8 20:12:21 2006
@@ -427,11 +427,15 @@
         Matcher matcher = pattern.matcher(value);
         if (matcher.matches()) {
             int count = matcher.groupCount();
-            StringBuffer buffer = new StringBuffer();
-            for (int i = 0; i < count; i++) {
-                buffer.append(matcher.group(i+1));
+            if (count == 1) {
+                return matcher.group(1);
+            } else {
+                StringBuffer buffer = new StringBuffer();
+                for (int i = 0; i < count; i++) {
+                    buffer.append(matcher.group(i+1));
+                }
+                return buffer.toString();
             }
-            return buffer.toString();
         } else {
             return null;
         }

Modified: jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java?view=diff&rev=484909&r1=484908&r2=484909
==============================================================================
--- jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java (original)
+++ jakarta/commons/proper/validator/trunk/src/test/org/apache/commons/validator/routines/RegexValidatorTest.java Fri Dec  8 20:12:21 2006
@@ -29,7 +29,7 @@
 public class RegexValidatorTest extends TestCase {
 
     private static final String MISSING_REGEX = "Regular Expression is missing";
-    private static final String REGEX         = "^([abc]*)(?:\\-)([DEF]*)(?:\\-)([123])*$";
+    private static final String REGEX         = "^([abc]*)(?:\\-)([DEF]*)(?:\\-)([123]*)$";
 
     private static final String COMPONENT_1 = "([abc]{3})";
     private static final String COMPONENT_2 = "([DEF]{3})";
@@ -193,6 +193,15 @@
         assertEquals("isValid() Invalid",  false, multiple.isValid(value));
         assertEquals("validate() Invalid", null,  multiple.validate(value));
         assertEquals("match() Multiple",   null,  multiple.match(value));
+    }
+
+    /**
+     * Test instance methods with multiple regular expressions.
+     */
+    public void testMatchOneGroup() {
+
+        assertEquals("validate()",   "ABC",                  RegexValidator.validate("ABC", "^([A-Z]*)$"));
+        checkArray("match()",         new String[] {"ABC"},  RegexValidator.match("ABC", "^([A-Z]*)$"));
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org