svn commit: r15645 - trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java

[email protected]
Newsgroups gmane.comp.lang.uml.argouml.cvs
Message-ID <[email protected]>
Author: tfmorris
Date: 2008-08-29 01:08:09-0700
New Revision: 15645

Modified:
   trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java

Log:
issue 5354: Optimize matching of a single wildcard character

Modified: trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java?view=diff&rev=15645&p1=trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java&p2=trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java&r1=15644&r2=15645
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java	(original)
+++ trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java	2008-08-29 01:08:09-0700
@@ -26,6 +26,10 @@
 
 import java.util.StringTokenizer;
 
+/**
+ * Predicate to match strings/substrings.  It only supports simple
+ * wildcard processing, not full regex style matching.
+ */
 public class PredicateStringMatch implements Predicate {
 
     public static int MAX_PATS = 10;
@@ -41,6 +45,9 @@
 
     public static Predicate create(String pattern) {
         pattern = pattern.trim();
+        if ("*".equals(pattern) || "".equals(pattern)) {
+            return PredicateTrue.getInstance();
+        }
         String pats[] = new String[MAX_PATS];
         int count = 0;
         if (pattern.startsWith("*")) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.