@Override public int hashCode() { int hc = 0; int len = size(); for (int i = 0; i < len; i++) { // make Pattern comparisons case insensitive // http://jira.qos.ch/browse/LBCORE-76 hc ^= get(i).toLowerCase().hashCode(); } return hc; }
private boolean isSuffixPattern(ElementSelector p) { return (p.size() > 1) && p.get(0).equals(KLEENE_STAR); }
@Override public boolean equals(Object o) { if ((o == null) || !(o instanceof ElementSelector)) { return false; } ElementSelector r = (ElementSelector) o; if (r.size() != size()) { return false; } int len = size(); for (int i = 0; i < len; i++) { if (!equalityCheck(get(i), r.get(i))) { return false; } } // if everything matches, then the two patterns are equal return true; }
List<Action> prefixMatch(ElementPath elementPath) { int max = 0; ElementSelector longestMatchingElementSelector = null; for (ElementSelector selector : rules.keySet()) { String last = selector.peekLast(); if (isKleeneStar(last)) { int r = selector.getPrefixMatchLength(elementPath); // to qualify the match length must equal p's size omitting the '*' if ((r == selector.size() - 1) && (r > max)) { max = r; longestMatchingElementSelector = selector; } } } if (longestMatchingElementSelector != null) { return rules.get(longestMatchingElementSelector); } else { return null; } }
@Override public int hashCode() { int hc = 0; int len = size(); for (int i = 0; i < len; i++) { // make Pattern comparisons case insensitive // http://jira.qos.ch/browse/LBCORE-76 hc ^= get(i).toLowerCase(Locale.US).hashCode(); } return hc; }
@Override public int hashCode() { int hc = 0; int len = size(); for (int i = 0; i < len; i++) { // make Pattern comparisons case insensitive // http://jira.qos.ch/browse/LBCORE-76 hc ^= get(i).toLowerCase().hashCode(); } return hc; }
@Override public int hashCode() { int hc = 0; int len = size(); for (int i = 0; i < len; i++) { // make Pattern comparisons case insensitive // http://jira.qos.ch/browse/LBCORE-76 hc ^= get(i).toLowerCase().hashCode(); } return hc; }
@Override public int hashCode() { int hc = 0; int len = size(); for (int i = 0; i < len; i++) { // make Pattern comparisons case insensitive // http://jira.qos.ch/browse/LBCORE-76 hc ^= get(i).toLowerCase().hashCode(); } return hc; }
@Override public int hashCode() { int hc = 0; int len = size(); for (int i = 0; i < len; i++) { // make Pattern comparisons case insensitive // http://jira.qos.ch/browse/LBCORE-76 hc ^= get(i).toLowerCase().hashCode(); } return hc; }
@Test public void test5() { ElementSelector p = new ElementSelector("//a"); assertEquals(1, p.size()); assertEquals("a", p.get(0)); }
@Test public void test1() { ElementSelector p = new ElementSelector("a"); assertEquals(1, p.size()); assertEquals("a", p.peekLast()); assertEquals("a", p.get(0)); }
@Test public void testSuffix() { ElementSelector p = new ElementSelector("a/"); assertEquals(1, p.size()); assertEquals("a", p.peekLast()); assertEquals("a", p.get(0)); }
@Test public void test6() { ElementSelector p = new ElementSelector("//a//b"); assertEquals(2, p.size()); assertEquals("a", p.get(0)); assertEquals("b", p.get(1)); }
@Test public void test3() { ElementSelector p = new ElementSelector("a123/b1234/cvvsdf"); assertEquals(3, p.size()); assertEquals("a123", p.get(0)); assertEquals("b1234", p.get(1)); assertEquals("cvvsdf", p.get(2)); }
@Test public void test2() { ElementSelector p = new ElementSelector("a/b"); assertEquals(2, p.size()); assertEquals("b", p.peekLast()); assertEquals("a", p.get(0)); assertEquals("b", p.get(1)); }
@Test public void test4() { ElementSelector p = new ElementSelector("/a123/b1234/cvvsdf"); assertEquals(3, p.size()); assertEquals("a123", p.get(0)); assertEquals("b1234", p.get(1)); assertEquals("cvvsdf", p.get(2)); }