Author: bodewig
Date: Tue Aug 17 18:30:52 2010
New Revision: 986445

URL: http://svn.apache.org/viewvc?rev=986445&view=rev
Log:
merge redundant code

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/filters/TokenFilter.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/Matches.java
    
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
    
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Name.java
    
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/FilenameSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/filters/TokenFilter.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/filters/TokenFilter.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/filters/TokenFilter.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/filters/TokenFilter.java Tue 
Aug 17 18:30:52 2010
@@ -29,6 +29,7 @@ import org.apache.tools.ant.util.Tokeniz
 import org.apache.tools.ant.util.LineTokenizer;
 import org.apache.tools.ant.util.StringUtils;
 import org.apache.tools.ant.util.regexp.Regexp;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
 
 /**
  * This splits up input into tokens and passes
@@ -705,22 +706,6 @@ public class TokenFilter extends BaseFil
      * @return the Regexp option bits
      */
     public static int convertRegexOptions(String flags) {
-        if (flags == null) {
-            return 0;
-        }
-        int options = 0;
-        if (flags.indexOf('g') != -1) {
-            options |= Regexp.REPLACE_ALL;
-        }
-        if (flags.indexOf('i') != -1) {
-            options |= Regexp.MATCH_CASE_INSENSITIVE;
-        }
-        if (flags.indexOf('m') != -1) {
-            options |= Regexp.MATCH_MULTILINE;
-        }
-        if (flags.indexOf('s') != -1) {
-            options |= Regexp.MATCH_SINGLELINE;
-        }
-        return options;
+        return RegexpUtil.asOptions(flags);
     }
 }

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/Matches.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/Matches.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/Matches.java 
(original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/condition/Matches.java 
Tue Aug 17 18:30:52 2010
@@ -19,9 +19,9 @@ package org.apache.tools.ant.taskdefs.co
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.ProjectComponent;
-import org.apache.tools.ant.util.regexp.Regexp;
 import org.apache.tools.ant.types.RegularExpression;
-import org.apache.tools.ant.util.regexp.RegexpMatcher;
+import org.apache.tools.ant.util.regexp.Regexp;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
 
 /**
  * Simple regular expression condition.
@@ -112,16 +112,7 @@ public class Matches extends ProjectComp
         if (regularExpression == null) {
             throw new BuildException("Missing pattern in matches.");
         }
-        int options = RegexpMatcher.MATCH_DEFAULT;
-        if (!caseSensitive) {
-            options = options | RegexpMatcher.MATCH_CASE_INSENSITIVE;
-        }
-        if (multiLine) {
-            options = options | RegexpMatcher.MATCH_MULTILINE;
-        }
-        if (singleLine) {
-            options = options | RegexpMatcher.MATCH_SINGLELINE;
-        }
+        int options = RegexpUtil.asOptions(caseSensitive, multiLine, 
singleLine);
         Regexp regexp = regularExpression.getRegexp(getProject());
         return regexp.matches(string, options);
     }

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
 Tue Aug 17 18:30:52 2010
@@ -43,6 +43,7 @@ import org.apache.tools.ant.types.resour
 import org.apache.tools.ant.types.resources.Union;
 import org.apache.tools.ant.util.FileUtils;
 import org.apache.tools.ant.util.regexp.Regexp;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
 
 /**
  * Performs regular expression string replacements in a text
@@ -513,23 +514,7 @@ public class ReplaceRegExp extends Task 
                                      + "time.");
         }
 
-        int options = 0;
-
-        if (flags.indexOf('g') != -1) {
-            options |= Regexp.REPLACE_ALL;
-        }
-
-        if (flags.indexOf('i') != -1) {
-            options |= Regexp.MATCH_CASE_INSENSITIVE;
-        }
-
-        if (flags.indexOf('m') != -1) {
-            options |= Regexp.MATCH_MULTILINE;
-        }
-
-        if (flags.indexOf('s') != -1) {
-            options |= Regexp.MATCH_SINGLELINE;
-        }
+        int options = RegexpUtil.asOptions(flags);
 
         if (file != null && file.exists()) {
             try {

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Name.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Name.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Name.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Name.java
 Tue Aug 17 18:30:52 2010
@@ -22,6 +22,7 @@ import org.apache.tools.ant.types.Regula
 import org.apache.tools.ant.types.Resource;
 import org.apache.tools.ant.types.selectors.SelectorUtils;
 import org.apache.tools.ant.util.regexp.Regexp;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
 
 /**
  * Name ResourceSelector.
@@ -137,11 +138,7 @@ public class Name implements ResourceSel
                 reg.setPattern(regex);
                 expression = reg.getRegexp(project);
             }
-            int options = Regexp.MATCH_DEFAULT;
-            if (!cs) {
-                options |= Regexp.MATCH_CASE_INSENSITIVE;
-            }
-            return expression.matches(modify(name), options);
+            return expression.matches(modify(name), RegexpUtil.asOptions(cs));
         }
     }
 

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/FilenameSelector.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/FilenameSelector.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- 
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/FilenameSelector.java
 (original)
+++ 
ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/FilenameSelector.java
 Tue Aug 17 18:30:52 2010
@@ -24,6 +24,7 @@ import org.apache.tools.ant.Project;
 import org.apache.tools.ant.types.Parameter;
 import org.apache.tools.ant.types.RegularExpression;
 import org.apache.tools.ant.util.regexp.Regexp;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
 
 /**
  * Selector that filters files based on the filename.
@@ -185,10 +186,7 @@ public class FilenameSelector extends Ba
                 reg.setPattern(regex);
                 expression = reg.getRegexp(getProject());
             }
-            int options = Regexp.MATCH_DEFAULT;
-            if (!casesensitive) {
-                options |= Regexp.MATCH_CASE_INSENSITIVE;
-            }
+            int options = RegexpUtil.asOptions(casesensitive);
             return expression.matches(filename, options) == !negated;
         }
     }

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/RegexpPatternMapper.java 
Tue Aug 17 18:30:52 2010
@@ -22,6 +22,7 @@ import java.util.Vector;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.util.regexp.RegexpMatcher;
 import org.apache.tools.ant.util.regexp.RegexpMatcherFactory;
+import org.apache.tools.ant.util.regexp.RegexpUtil;
 
 /**
  * Implementation of FileNameMapper that does regular expression
@@ -67,11 +68,7 @@ public class RegexpPatternMapper impleme
      * @since Ant 1.6.3
      */
     public void setCaseSensitive(boolean caseSensitive) {
-        if (!caseSensitive) {
-            regexpOptions = RegexpMatcher.MATCH_CASE_INSENSITIVE;
-        } else {
-            regexpOptions = 0;
-        }
+        regexpOptions = RegexpUtil.asOptions(caseSensitive);
     }
 
     /**

Modified: 
ant/core/trunk/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java?rev=986445&r1=986444&r2=986445&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java 
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/regexp/RegexpUtil.java 
Tue Aug 17 18:30:52 2010
@@ -46,4 +46,64 @@ public class RegexpUtil {
     public static int removeFlag(int options, int flag) {
         return (options & (0xFFFFFFFF - flag));
     }
+
+    /**
+     * convert regex option flag characters to regex options
+     * <dl>
+     *   <li>g -  Regexp.REPLACE_ALL</li>
+     *   <li>i -  RegexpMatcher.MATCH_CASE_INSENSITIVE</li>
+     *   <li>m -  RegexpMatcher.MATCH_MULTILINE</li>
+     *   <li>s -  RegexpMatcher.MATCH_SINGLELINE</li>
+     * </dl>
+     * @param flags the string containing the flags
+     * @return the Regexp option bits
+     * @since Ant 1.8.2
+     */
+    public static int asOptions(String flags) {
+        int options = RegexpMatcher.MATCH_DEFAULT;
+        if (flags != null) {
+            options = asOptions(flags.indexOf('i') == -1,
+                                flags.indexOf('m') != -1,
+                                flags.indexOf('s') != -1);
+            if (flags.indexOf('g') != -1) {
+                options |= Regexp.REPLACE_ALL;
+            }
+        }
+        return options;
+    }
+
+    /**
+     * Convert flag to regex options.
+     *
+     * @param caseSensitive opposite of RegexpMatcher.MATCH_CASE_INSENSITIVE
+     * @return the Regexp option bits
+     * @since Ant 1.8.2
+     */
+    public static int asOptions(boolean caseSensitive) {
+        return asOptions(caseSensitive, false, false);
+    }
+
+    /**
+     * Convert flags to regex options.
+     *
+     * @param caseSensitive opposite of RegexpMatcher.MATCH_CASE_INSENSITIVE
+     * @param multiLine RegexpMatcher.MATCH_MULTILINE
+     * @param singleLine RegexpMatcher.MATCH_SINGLELINE
+     * @return the Regexp option bits
+     * @since Ant 1.8.2
+     */
+    public static int asOptions(boolean caseSensitive, boolean multiLine,
+                                boolean singleLine) {
+        int options = RegexpMatcher.MATCH_DEFAULT;
+        if (!caseSensitive) {
+            options = options | RegexpMatcher.MATCH_CASE_INSENSITIVE;
+        }
+        if (multiLine) {
+            options = options | RegexpMatcher.MATCH_MULTILINE;
+        }
+        if (singleLine) {
+            options = options | RegexpMatcher.MATCH_SINGLELINE;
+        }
+        return options;
+    }
 }


Reply via email to