I included the RegEx "flavor" in the factory method name for a reason - someone might want to use one of the other flavors (Awk, etc).

Adrian Crum
Sandglass Software
www.sandglass-software.com

On 11/17/2013 6:35 AM, [email protected] wrote:
Author: jleroux
Date: Sun Nov 17 11:35:49 2013
New Revision: 1542709

URL: http://svn.apache.org/r1542709
Log:
Changes module and method names
Uses | instead of & in compile mask options
Adds a comment about when to use or not

Added:
     ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java
       - copied, changed from r1542558, 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java

Copied: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java 
(from r1542558, 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java)
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java?p2=ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java&p1=ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java&r1=1542558&r2=1542709&rev=1542709&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java 
(original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/PatternFactory.java Sun 
Nov 17 11:35:49 2013
@@ -25,29 +25,30 @@ import org.ofbiz.base.util.cache.UtilCac

  /**
   * A RegEx compiled pattern factory.
- *
+ *
   */
  public class PatternFactory {

-    public static final String module = CompilerMatcher.class.getName();
+    public static final String module = PatternFactory.class.getName();
      private static final UtilCache<String, Pattern> compiledPerl5Patterns = 
UtilCache.createUtilCache("regularExpression.compiledPerl5Patterns", false);

      /**
       * Compiles and caches a Perl5 regexp pattern for the given string 
pattern.
-     *
+     * This would be of no benefits (and may bloat memory usage) if 
stringPattern is never the same.
       * @param stringPattern a Perl5 pattern string
       * @param caseSensitive case sensitive true/false
       * @return a <code>Pattern</code> instance for the given string pattern
       * @throws MalformedPatternException
       */
-    public Pattern getPerl5Instance(String stringPattern, boolean 
caseSensitive) throws MalformedPatternException {
+
+    public Pattern createOrGetCompiledPattern(String stringPattern, boolean 
caseSensitive) throws MalformedPatternException {
          Pattern pattern = compiledPerl5Patterns.get(stringPattern);
          if (pattern == null) {
              Perl5Compiler compiler = new Perl5Compiler();
              if (caseSensitive) {
-                pattern = compiler.compile(stringPattern, 
Perl5Compiler.READ_ONLY_MASK);
+                pattern = compiler.compile(stringPattern, 
Perl5Compiler.READ_ONLY_MASK); // READ_ONLY_MASK guarantees immutability
              } else {
-                pattern = compiler.compile(stringPattern, 
Perl5Compiler.CASE_INSENSITIVE_MASK & Perl5Compiler.READ_ONLY_MASK);
+                pattern = compiler.compile(stringPattern, 
Perl5Compiler.CASE_INSENSITIVE_MASK | Perl5Compiler.READ_ONLY_MASK);
              }
              pattern = compiledPerl5Patterns.putIfAbsentAndGet(stringPattern, 
pattern);
              if (Debug.verboseOn()) {


Reply via email to