You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oz...@apache.org on 2005/02/13 17:16:55 UTC
svn commit: r153637 - in
jakarta/commons/proper/digester/branches/digester2/src:
java/org/apache/commons/digester2/Path.java
java/org/apache/commons/digester2/SupplementaryRuleManager.java
test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java
Author: ozeigermann
Date: Sun Feb 13 08:16:53 2005
New Revision: 153637
URL: http://svn.apache.org/viewcvs?view=rev&rev=153637
Log:
Moved match methods into supplementary rule manager
Modified:
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java
jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java
Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java?view=diff&r1=153636&r2=153637
==============================================================================
--- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java (original)
+++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Path.java Sun Feb 13 08:16:53 2005
@@ -142,32 +142,6 @@
localNames.clear();
}
- public boolean matches(String pathToMatch) {
- if (pathToMatch.charAt(0) == '/') {
- // absolute
- return getPath().equals(pathToMatch);
- } else {
- // relative
- // XXX looks wrong but protects a match of
- // "a/b" against a path of "/gotcha/b", but
- // still allows
- // "a/b" to match against "/a/b"
- return getPath().endsWith("/" + pathToMatch);
- }
- }
-
- /**
- * Checks if this path matches any of the paths given. This means we iterate through
- * <code>pathsToMatch</code> and match every entry to this path.
- */
- public boolean matchsAny(String[] pathsToMatch) {
- for (int i = 0; i < pathsToMatch.length; i++) {
- if (matches(pathsToMatch[i]))
- return true;
- }
- return false;
- }
-
public String toString() {
return getPath();
}
Modified: jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java?view=diff&r1=153636&r2=153637
==============================================================================
--- jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java (original)
+++ jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/SupplementaryRuleManager.java Sun Feb 13 08:16:53 2005
@@ -31,6 +31,32 @@
public class SupplementaryRuleManager extends DefaultRuleManager {
+ public static boolean matches(String path, String pathToMatch) {
+ if (pathToMatch.charAt(0) == '/') {
+ // absolute
+ return path.equals(pathToMatch);
+ } else {
+ // relative
+ // XXX looks wrong but protects a match of
+ // "a/b" against a path of "/gotcha/b", but
+ // still allows
+ // "a/b" to match against "/a/b"
+ return path.endsWith("/" + pathToMatch);
+ }
+ }
+
+ /**
+ * Checks if this path matches any of the paths given. This means we iterate through
+ * <code>pathsToMatch</code> and match every entry to this path.
+ */
+ public static boolean matchsAny(String path, String[] pathsToMatch) {
+ for (int i = 0; i < pathsToMatch.length; i++) {
+ if (matches(path, pathsToMatch[i]))
+ return true;
+ }
+ return false;
+ }
+
protected final Action supplementaryAction;
protected final Action fallbackAction;
Modified: jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java?view=diff&r1=153636&r2=153637
==============================================================================
--- jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java (original)
+++ jakarta/commons/proper/digester/branches/digester2/src/test/org/apache/commons/digester2/SupplementaryRuleManagerTestCase.java Sun Feb 13 08:16:53 2005
@@ -44,20 +44,20 @@
public void begin(Context context, String namespace, String name, Attributes attrs) {
- Path path = context.getCurrentPath();
- if (path.matches("/root")) {
+ String path = context.getMatchPath();
+ if (SupplementaryRuleManager.matches(path, "/root")) {
rootFoundAbsolute = true;
}
- if (path.matches("root")) {
+ if (SupplementaryRuleManager.matches(path, "root")) {
rootFoundRelative = true;
}
- if (path.matches("/root/p/em")) {
+ if (SupplementaryRuleManager.matches(path, "/root/p/em")) {
longAbsoluteFound = true;
}
- if (path.matches("ot/p")) {
+ if (SupplementaryRuleManager.matches(path, "ot/p")) {
wrongRelativeFound = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org