/** * Returns the number of ANY elements in the path */ public int nAnys() { int n = 0; for (Iterator<String> itr = data.iterator(); itr.hasNext();) { if (ANY.equals(itr.next())) { n++; } } return n; }
/** * Returns the number of ANY elements in the path */ public int nAnys() { int n = 0; for (Iterator<String> itr = data.iterator(); itr.hasNext();) { if (ANY.equals(itr.next())) { n++; } } return n; }
/** * Returns the number of ANY elements in the path */ public int nAnys() { int n = 0; for (Iterator<String> itr = data.iterator(); itr.hasNext();) { if (ANY.equals(itr.next())) { n++; } } return n; }
/** * Check if this path matches the path pattern argument passed in. * * @param pattern the pattern path * @return true if it matches, else false */ public boolean matches(Path pattern) { if (data.size() == pattern.data.size()) { Iterator<String> patternDataItr = pattern.data.iterator(); Iterator<String> dataItr = data.iterator(); while (patternDataItr.hasNext() && dataItr.hasNext()) { String pat = patternDataItr.next(); String val = dataItr.next(); if (!(val.equals(pat) || pat.equals(ANY))) { return false; } } return true; } return false; }
/** * Check if this path matches the path pattern argument passed in. * * @param pattern the pattern path * @return true if it matches, else false */ public boolean matches(Path pattern) { if (data.size() == pattern.data.size()) { Iterator<String> patternDataItr = pattern.data.iterator(); Iterator<String> dataItr = data.iterator(); while (patternDataItr.hasNext() && dataItr.hasNext()) { String pat = patternDataItr.next(); String val = dataItr.next(); if (!(val.equals(pat) || pat.equals(ANY))) { return false; } } return true; } return false; }
/** * Check if this path matches the path pattern argument passed in. * * @param pattern the pattern path * @return true if it matches, else false */ public boolean matches(Path pattern) { if (data.size() == pattern.data.size()) { Iterator<String> patternDataItr = pattern.data.iterator(); Iterator<String> dataItr = data.iterator(); while (patternDataItr.hasNext() && dataItr.hasNext()) { String pat = patternDataItr.next(); String val = dataItr.next(); if (!(val.equals(pat) || pat.equals(ANY))) { return false; } } return true; } return false; }
/** * Returns a path with all possible $parent and $this references removed. If * there are prefixing $parents, they will remain. */ public Path normalize() { boolean parentThisPresent = false; Iterator<String> dataItr = data.iterator(); while (dataItr.hasNext()) { String s = dataItr.next(); if (PARENT.equals(s) || THIS.equals(s)) { parentThisPresent = true; break; } } if (parentThisPresent) { MutablePath p = new MutablePath(); dataItr = data.iterator(); while (dataItr.hasNext()) { String s = dataItr.next(); if (PARENT.equals(s) && p.numSegments() > 0) { p.pop(); } else if (!THIS.equals(s)) { p.push(s); } } return p.immutableCopy(); } else { return this; } }
/** * Returns a path with all possible $parent and $this references removed. If * there are prefixing $parents, they will remain. */ public Path normalize() { boolean parentThisPresent = false; Iterator<String> dataItr = data.iterator(); while (dataItr.hasNext()) { String s = dataItr.next(); if (PARENT.equals(s) || THIS.equals(s)) { parentThisPresent = true; break; } } if (parentThisPresent) { MutablePath p = new MutablePath(); dataItr = data.iterator(); while (dataItr.hasNext()) { String s = dataItr.next(); if (PARENT.equals(s) && p.numSegments() > 0) { p.pop(); } else if (!THIS.equals(s)) { p.push(s); } } return p.immutableCopy(); } else { return this; } }