svn commit: r15645 - trunk/src/argouml-app/src/org/argouml/util/PredicateStringMatch.java
| 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("*")) {