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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to