public Object visit(DerefQueryNode node, Object data) throws RepositoryException { StringBuffer buffer = (StringBuffer) data; buffer.append(PADDING, 0, indent); buffer.append("+ DerefQueryNode: "); buffer.append(" NodeTest="); if (node.getNameTest() == null) { buffer.append("*"); } else { buffer.append(node.getNameTest()); } buffer.append(" Descendants=").append(node.getIncludeDescendants()); buffer.append(" Index="); if (node.getIndex() == LocationStepQueryNode.NONE) { buffer.append("NONE"); } else if (node.getIndex() == LocationStepQueryNode.LAST) { buffer.append("last()"); } else { buffer.append(node.getIndex()); } buffer.append("\n"); traverse(node.getOperands(), buffer); return buffer; }
public Object visit(DerefQueryNode node, Object data) throws RepositoryException { StringBuffer buffer = (StringBuffer) data; buffer.append(PADDING, 0, indent); buffer.append("+ DerefQueryNode: "); buffer.append(" NodeTest="); if (node.getNameTest() == null) { buffer.append("*"); } else { buffer.append(node.getNameTest()); } buffer.append(" Descendants=").append(node.getIncludeDescendants()); buffer.append(" Index="); if (node.getIndex() == LocationStepQueryNode.NONE) { buffer.append("NONE"); } else if (node.getIndex() == LocationStepQueryNode.LAST) { buffer.append("last()"); } else { buffer.append(node.getIndex()); } buffer.append("\n"); traverse(node.getOperands(), buffer); return buffer; }
public Object visit(DerefQueryNode node, Object data) throws RepositoryException { Query context = (Query) data; if (context == null) { exceptions.add(new IllegalArgumentException("Unsupported query")); } try { String refProperty = resolver.getJCRName(node.getRefProperty()); if (node.getIncludeDescendants()) { Query refPropQuery = Util.createMatchAllQuery(refProperty, indexFormatVersion, cache); context = new DescendantSelfAxisQuery(context, refPropQuery, false); } context = new DerefQuery(context, refProperty, node.getNameTest(), indexFormatVersion, nsMappings); // attach predicates Object[] predicates = node.acceptOperands(this, data); if (predicates.length > 0) { BooleanQuery andQuery = new BooleanQuery(); for (Object predicate : predicates) { andQuery.add((Query) predicate, Occur.MUST); } andQuery.add(context, Occur.MUST); context = andQuery; } } catch (NamespaceException e) { // should never happen exceptions.add(e); } return context; }
public Object visit(DerefQueryNode node, Object data) throws RepositoryException { Query context = (Query) data; if (context == null) { exceptions.add(new IllegalArgumentException("Unsupported query")); } try { String refProperty = resolver.getJCRName(node.getRefProperty()); if (node.getIncludeDescendants()) { Query refPropQuery = Util.createMatchAllQuery(refProperty, indexFormatVersion, cache); context = new DescendantSelfAxisQuery(context, refPropQuery, false); } context = new DerefQuery(context, refProperty, node.getNameTest(), indexFormatVersion, nsMappings); // attach predicates Object[] predicates = node.acceptOperands(this, data); if (predicates.length > 0) { BooleanQuery andQuery = new BooleanQuery(); for (Object predicate : predicates) { andQuery.add((Query) predicate, Occur.MUST); } andQuery.add(context, Occur.MUST); context = andQuery; } } catch (NamespaceException e) { // should never happen exceptions.add(e); } return context; }