public Object visit(DerefQueryNode node, Object data) throws RepositoryException { return node.acceptOperands(this, data); } }
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; }
/** * {@inheritDoc} */ public DerefQueryNode createDerefQueryNode(QueryNode parent, Name nameTest, boolean descendants) { return new DerefQueryNode(parent, nameTest, descendants); }
/** * Creates a new <code>DerefQueryNode</code> without a name set for the * reference property. * @param parent the parent query node. * @param nameTest the name test on the target node, or <code>null</code> * if no name test should be performed on the target node. * @param descendants if <code>true</code> this location step uses the * descendant-or-self axis; otherwise the child axis. */ protected DerefQueryNode(QueryNode parent, Name nameTest, boolean descendants) { super(parent); setNameTest(nameTest); setIncludeDescendants(descendants); }
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 Query createPredicateDeref(Query subQuery, 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()); context = new PredicateDerefQuery(subQuery, 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) { StringBuffer sb = (StringBuffer) data; try { sb.append(resolver.getJCRName(XPathQueryBuilder.JCR_DEREF)); sb.append("(@"); sb.append(resolver.getJCRName(encode(node.getRefProperty()))); sb.append(", '"); if (node.getNameTest() == null) { sb.append("*"); } else { sb.append(resolver.getJCRName(encode(node.getNameTest()))); } sb.append("')"); } catch (NamespaceException e) { exceptions.add(e); } return sb; }
if (derefNode.getRefProperty() == null) { exceptions.add(new InvalidQueryException("Wrong first argument type for jcr:deref")); exceptions.add(new InvalidQueryException("Illegal name: " + value)); derefNode.setNameTest(name); derefNode.setIncludeDescendants(descendant); return derefNode;
if (isAttributeAxis(node)) { if (queryNode.getType() == QueryNode.TYPE_RELATION || (queryNode.getType() == QueryNode.TYPE_DEREF && ((DerefQueryNode) queryNode).getRefProperty() == null) || queryNode.getType() == QueryNode.TYPE_ORDER || queryNode.getType() == QueryNode.TYPE_PATH
((DerefQueryNode) queryNode).setRefProperty(name); } else if (queryNode.getType() == QueryNode.TYPE_RELATION) { Path.Element element = PATH_FACTORY.createElement(name);
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 Query createPredicateDeref(Query subQuery, 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()); context = new PredicateDerefQuery(subQuery, 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) { StringBuffer sb = (StringBuffer) data; try { sb.append(resolver.getJCRName(XPathQueryBuilder.JCR_DEREF)); sb.append("(@"); sb.append(resolver.getJCRName(encode(node.getRefProperty()))); sb.append(", '"); if (node.getNameTest() == null) { sb.append("*"); } else { sb.append(resolver.getJCRName(encode(node.getNameTest()))); } sb.append("')"); } catch (NamespaceException e) { exceptions.add(e); } return sb; }
if (derefNode.getRefProperty() == null) { exceptions.add(new InvalidQueryException("Wrong first argument type for jcr:deref")); exceptions.add(new InvalidQueryException("Illegal name: " + value)); derefNode.setNameTest(name); derefNode.setIncludeDescendants(descendant); return derefNode;
/** * Creates a new <code>DerefQueryNode</code> without a name set for the * reference property. * @param parent the parent query node. * @param nameTest the name test on the target node, or <code>null</code> * if no name test should be performed on the target node. * @param descendants if <code>true</code> this location step uses the * descendant-or-self axis; otherwise the child axis. */ protected DerefQueryNode(QueryNode parent, Name nameTest, boolean descendants) { super(parent); setNameTest(nameTest); setIncludeDescendants(descendants); }
if (isAttributeAxis(node)) { if (queryNode.getType() == QueryNode.TYPE_RELATION || (queryNode.getType() == QueryNode.TYPE_DEREF && ((DerefQueryNode) queryNode).getRefProperty() == null) || queryNode.getType() == QueryNode.TYPE_ORDER || queryNode.getType() == QueryNode.TYPE_PATH
((DerefQueryNode) queryNode).setRefProperty(name); } else if (queryNode.getType() == QueryNode.TYPE_RELATION) { Path.Element element = PATH_FACTORY.createElement(name);
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 { return node.acceptOperands(this, data); } }
/** * {@inheritDoc} */ public DerefQueryNode createDerefQueryNode(QueryNode parent, Name nameTest, boolean descendants) { return new DerefQueryNode(parent, nameTest, descendants); }