/** * {@inheritDoc} * * <p>The outer query hits loop contains the ancestor nodes. */ public ScoreNode[][] getMatchingScoreNodes(ScoreNode ancestor) throws IOException { try { Path ancestorPath = hmgr.getPath(ancestor.getNodeId()); PathBuilder builder = new PathBuilder(ancestorPath); builder.addAll(relPath.getElements()); return contextIndex.getScoreNodes(builder.getPath().getNormalizedPath()); } catch (RepositoryException e) { // ignore, probably does not exist anymore return null; } }
/** @see org.apache.jackrabbit.core.security.authorization.AccessControlUtils#isAcItem(Path) */ public boolean isAcItem(Path absPath) throws RepositoryException { Path.Element[] elems = absPath.getElements(); // start looking for a rep:policy name starting from the last element. // NOTE: with the current content structure max. 3 levels must be looked // at as the rep:policy node may only have ACE nodes with properties. if (elems.length > 1) { for (int index = elems.length - 1, j = 1; index >= 0 && j <= 3; index--, j++) { if (N_POLICY.equals(elems[index].getName())) { return true; } } } return false; }