List prefixMatch(Pattern currentPattern) { int max = 0; Pattern longestMatchingPattern = null; for (Pattern p : rules.keySet()) { String last = p.peekLast(); if (ANY.equals(last)) { int r = currentPattern.getPrefixMatchLength(p); // to qualify the match length must equal p's size omitting the '*' if ((r == p.size() - 1) && (r > max)) { // System.out.println("New longest prefixMatch "+p); max = r; longestMatchingPattern = p; } } } if (longestMatchingPattern != null) { return rules.get(longestMatchingPattern); } else { return null; } }
List prefixMatch(Pattern currentPattern) { int max = 0; Pattern longestMatchingPattern = null; for (Pattern p : rules.keySet()) { String last = p.peekLast(); if (ANY.equals(last)) { int r = currentPattern.getPrefixMatchLength(p); // to qualify the match length must equal p's size omitting the '*' if ((r == p.size() - 1) && (r > max)) { // System.out.println("New longest prefixMatch "+p); max = r; longestMatchingPattern = p; } } } if (longestMatchingPattern != null) { return rules.get(longestMatchingPattern); } else { return null; } }
List prefixMatch(Pattern currentPattern) { int max = 0; Pattern longestMatchingPattern = null; for (Pattern p : rules.keySet()) { String last = p.peekLast(); if ("*".equals(last)) { int r = currentPattern.getPrefixMatchLength(p); // System.out.println("r = "+ r + ", p= "+p); // to qualify the match length must equal p's size omitting the '*' if ((r == p.size() - 1) && (r > max)) { // System.out.println("New longest prefixMatch "+p); max = r; longestMatchingPattern = p; } } } if (longestMatchingPattern != null) { // System.out.println("prefixMatch will return" // +rules.get(longestMatchingPattern)); return rules.get(longestMatchingPattern); } else { return null; } }