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; }
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; }
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 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) 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; }
if (derefNode.getRefProperty() == null) { exceptions.add(new InvalidQueryException("Wrong first argument type for jcr:deref"));
if (derefNode.getRefProperty() == null) { exceptions.add(new InvalidQueryException("Wrong first argument type for jcr:deref"));
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
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