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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]