You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bs...@apache.org on 2007/11/02 22:32:34 UTC

svn commit: r591477 - /commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java

Author: bspeakmon
Date: Fri Nov  2 14:32:33 2007
New Revision: 591477

URL: http://svn.apache.org/viewvc?rev=591477&view=rev
Log:
- VALIDATOR-242: pushed Pattern compilation to static phase for performance
  (see discussion in jira)

Modified:
    commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java

Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java?rev=591477&r1=591476&r2=591477&view=diff
==============================================================================
--- commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java (original)
+++ commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/EmailValidator.java Fri Nov  2 14:32:33 2007
@@ -47,11 +47,15 @@
     private static final String QUOTED_USER = "(\"[^\"]*\")";
     private static final String WORD = "((" + VALID_CHARS + "|')+|" + QUOTED_USER + ")";
 
-    private static final String LEGAL_ASCII_PATTERN = "^\\p{ASCII}+$";
-    private static final String EMAIL_PATTERN = "^\\s*?(.+)@(.+?)\\s*$";
-    private static final String IP_DOMAIN_PATTERN = "^\\[(.*)\\]$";
-
-    private static final String USER_PATTERN = "^\\s*" + WORD + "(\\." + WORD + ")*$";
+    private static final String LEGAL_ASCII_REGEX = "^\\p{ASCII}+$";
+    private static final String EMAIL_REGEX = "^\\s*?(.+)@(.+?)\\s*$";
+    private static final String IP_DOMAIN_REGEX = "^\\[(.*)\\]$";
+    private static final String USER_REGEX = "^\\s*" + WORD + "(\\." + WORD + ")*$";
+
+    private static final Pattern MATCH_ASCII_PATTERN = Pattern.compile(LEGAL_ASCII_REGEX);
+    private static final Pattern EMAIL_PATTERN = Pattern.compile(EMAIL_REGEX);
+    private static final Pattern IP_DOMAIN_PATTERN = Pattern.compile(IP_DOMAIN_REGEX);
+    private static final Pattern USER_PATTERN = Pattern.compile(USER_REGEX);
 
     /**
      * Singleton instance of this class.
@@ -86,8 +90,7 @@
             return false;
         }
 
-        Pattern matchAsciiPattern = Pattern.compile(LEGAL_ASCII_PATTERN);
-        Matcher asciiMatcher = matchAsciiPattern.matcher(email);
+        Matcher asciiMatcher = MATCH_ASCII_PATTERN.matcher(email);
         if (!asciiMatcher.matches()) {
             return false;
         }
@@ -95,8 +98,7 @@
         email = stripComments(email);
 
         // Check the whole email address structure
-        Pattern emailPattern = Pattern.compile(EMAIL_PATTERN);
-        Matcher emailMatcher = emailPattern.matcher(email);
+        Matcher emailMatcher = EMAIL_PATTERN.matcher(email);
         if (!emailMatcher.matches()) {
             return false;
         }
@@ -124,8 +126,7 @@
      */
     protected boolean isValidDomain(String domain) {
         // see if domain is an IP address in brackets
-        Pattern ipDomainPattern = Pattern.compile(IP_DOMAIN_PATTERN);
-        Matcher ipDomainMatcher = ipDomainPattern.matcher(domain);
+        Matcher ipDomainMatcher = IP_DOMAIN_PATTERN.matcher(domain);
 
         if (ipDomainMatcher.matches()) {
             InetAddressValidator inetAddressValidator =
@@ -146,7 +147,7 @@
      * @return true if the user name is valid.
      */
     protected boolean isValidUser(String user) {
-        return Pattern.matches(USER_PATTERN, user);
+        return USER_PATTERN.matcher(user).matches();
     }
 
     /**