/** * Dumps the node tree to buffer. * @param node the root node. * @param buffer where to dump the tree. * @throws RepositoryException */ private QueryTreeDump(QueryNode node, StringBuffer buffer) throws RepositoryException { node.accept(this, buffer); }
/** * {@inheritDoc} */ public boolean needsSystemTree() { if (operands == null) { return false; } for (T operand : operands) { if (operand.needsSystemTree()) { return true; } } return false; }
try { Name name = decode(resolver.getQName(child.getValue())); if (queryNode.getType() == QueryNode.TYPE_LOCATION) { if (name.equals(JCR_ROOT)) { name = LocationStepQueryNode.EMPTY_NAME; } else if (queryNode.getType() == QueryNode.TYPE_DEREF) { ((DerefQueryNode) queryNode).setRefProperty(name); } else if (queryNode.getType() == QueryNode.TYPE_RELATION) { Path.Element element = PATH_FACTORY.createElement(name); ((RelationQueryNode) queryNode).addPathElement(element); } else if (queryNode.getType() == QueryNode.TYPE_PATH) { root.addSelectProperty(name); } else if (queryNode.getType() == QueryNode.TYPE_ORDER) { root.getOrderNode().addOrderSpec(name, true); } else if (queryNode.getType() == QueryNode.TYPE_TEXTSEARCH) { TextsearchQueryNode ts = (TextsearchQueryNode) queryNode; ts.addPathElement(PATH_FACTORY.createElement(name)); if (queryNode.getType() == QueryNode.TYPE_LOCATION) { ((LocationStepQueryNode) queryNode).setNameTest(null); } else if (queryNode.getType() == QueryNode.TYPE_RELATION) { ((RelationQueryNode) queryNode).addPathElement( PATH_FACTORY.createElement(RelationQueryNode.STAR_NAME_TEST)); } else if (queryNode.getType() == QueryNode.TYPE_TEXTSEARCH) { ((TextsearchQueryNode) queryNode).addPathElement( PATH_FACTORY.createElement(RelationQueryNode.STAR_NAME_TEST));
try { Name name = decode(resolver.getQName(child.getValue())); if (queryNode.getType() == QueryNode.TYPE_LOCATION) { if (name.equals(JCR_ROOT)) { name = LocationStepQueryNode.EMPTY_NAME; } else if (queryNode.getType() == QueryNode.TYPE_DEREF) { ((DerefQueryNode) queryNode).setRefProperty(name); } else if (queryNode.getType() == QueryNode.TYPE_RELATION) { Path.Element element = PATH_FACTORY.createElement(name); ((RelationQueryNode) queryNode).addPathElement(element); } else if (queryNode.getType() == QueryNode.TYPE_PATH) { root.addSelectProperty(name); } else if (queryNode.getType() == QueryNode.TYPE_ORDER) { root.getOrderNode().addOrderSpec(name, true); } else if (queryNode.getType() == QueryNode.TYPE_TEXTSEARCH) { TextsearchQueryNode ts = (TextsearchQueryNode) queryNode; ts.addPathElement(PATH_FACTORY.createElement(name)); if (queryNode.getType() == QueryNode.TYPE_LOCATION) { ((LocationStepQueryNode) queryNode).setNameTest(null); } else if (queryNode.getType() == QueryNode.TYPE_RELATION) { ((RelationQueryNode) queryNode).addPathElement( PATH_FACTORY.createElement(RelationQueryNode.STAR_NAME_TEST)); } else if (queryNode.getType() == QueryNode.TYPE_TEXTSEARCH) { ((TextsearchQueryNode) queryNode).addPathElement( PATH_FACTORY.createElement(RelationQueryNode.STAR_NAME_TEST));
case JJTSTEPEXPR: 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 || queryNode.getType() == QueryNode.TYPE_TEXTSEARCH) { } else if (queryNode.getType() == QueryNode.TYPE_NOT) { if (queryNode.getType() == QueryNode.TYPE_PATH) { createLocationStep(node, (NAryQueryNode) queryNode); } else if (queryNode.getType() == QueryNode.TYPE_TEXTSEARCH || queryNode.getType() == QueryNode.TYPE_RELATION) { node.childrenAccept(this, queryNode); } else { if (queryNode.getType() == QueryNode.TYPE_LOCATION || queryNode.getType() == QueryNode.TYPE_DEREF || queryNode.getType() == QueryNode.TYPE_RELATION || queryNode.getType() == QueryNode.TYPE_TEXTSEARCH || queryNode.getType() == QueryNode.TYPE_PATH) { createNodeTest(node, queryNode); } else if (queryNode.getType() == QueryNode.TYPE_ORDER) { setOrderSpecPath(node, (OrderQueryNode) queryNode); } else { if (queryNode.getType() == QueryNode.TYPE_LOCATION) { SimpleNode child = (SimpleNode) node.jjtGetChild(0);
/** * Dumps the node tree to buffer. * @param node the root node. * @param buffer where to dump the tree. * @throws RepositoryException */ private QueryTreeDump(QueryNode node, StringBuffer buffer) throws RepositoryException { node.accept(this, buffer); }
/** * {@inheritDoc} */ public boolean needsSystemTree() { if (operands == null) { return false; } for (T operand : operands) { if (operand.needsSystemTree()) { return true; } } return false; }
case JJTSTEPEXPR: 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 || queryNode.getType() == QueryNode.TYPE_TEXTSEARCH) { } else if (queryNode.getType() == QueryNode.TYPE_NOT) { if (queryNode.getType() == QueryNode.TYPE_PATH) { createLocationStep(node, (NAryQueryNode) queryNode); } else if (queryNode.getType() == QueryNode.TYPE_TEXTSEARCH || queryNode.getType() == QueryNode.TYPE_RELATION) { node.childrenAccept(this, queryNode); } else { if (queryNode.getType() == QueryNode.TYPE_LOCATION || queryNode.getType() == QueryNode.TYPE_DEREF || queryNode.getType() == QueryNode.TYPE_RELATION || queryNode.getType() == QueryNode.TYPE_TEXTSEARCH || queryNode.getType() == QueryNode.TYPE_PATH) { createNodeTest(node, queryNode); } else if (queryNode.getType() == QueryNode.TYPE_ORDER) { setOrderSpecPath(node, (OrderQueryNode) queryNode); } else { if (queryNode.getType() == QueryNode.TYPE_LOCATION) { SimpleNode child = (SimpleNode) node.jjtGetChild(0);
private void traverse(QueryNode[] node, StringBuffer buffer) throws RepositoryException { indent += 2; if (indent > PADDING.length) { char[] tmp = new char[indent * 2]; Arrays.fill(tmp, PADDING_CHAR); PADDING = tmp; } for (int i = 0; i < node.length; i++) { node[i].accept(this, buffer); } indent -= 2; }
if (queryNode.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode rel = (RelationQueryNode) queryNode; rel.setStringValue("true"); if (queryNode.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode rel = (RelationQueryNode) queryNode; rel.setStringValue("false"); if (queryNode.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode rel = (RelationQueryNode) queryNode; if (rel.getOperation() == RelationQueryNode.OPERATION_EQ_GENERAL) { if (queryNode.getType() == QueryNode.TYPE_RELATION) { ((RelationQueryNode) queryNode).setPositionValue(1); } else if (queryNode.getType() == QueryNode.TYPE_LOCATION) { ((LocationStepQueryNode) queryNode).setIndex(1); } else { if (queryNode.getType() == QueryNode.TYPE_RELATION) { ((RelationQueryNode) queryNode).setPositionValue(LocationStepQueryNode.LAST); } else if (queryNode.getType() == QueryNode.TYPE_LOCATION) { ((LocationStepQueryNode) queryNode).setIndex(LocationStepQueryNode.LAST); } else { if (queryNode.getType() == QueryNode.TYPE_LOCATION) { LocationStepQueryNode loc = (LocationStepQueryNode) queryNode; if (queryNode.getType() == QueryNode.TYPE_PATH) { PathQueryNode pathNode = (PathQueryNode) queryNode;
private void traverse(QueryNode[] node, StringBuffer buffer) throws RepositoryException { indent += 2; if (indent > PADDING.length) { char[] tmp = new char[indent * 2]; Arrays.fill(tmp, PADDING_CHAR); PADDING = tmp; } for (int i = 0; i < node.length; i++) { node[i].accept(this, buffer); } indent -= 2; }
if (queryNode.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode rel = (RelationQueryNode) queryNode; rel.setStringValue("true"); if (queryNode.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode rel = (RelationQueryNode) queryNode; rel.setStringValue("false"); if (queryNode.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode rel = (RelationQueryNode) queryNode; if (rel.getOperation() == RelationQueryNode.OPERATION_EQ_GENERAL) { if (queryNode.getType() == QueryNode.TYPE_RELATION) { ((RelationQueryNode) queryNode).setPositionValue(1); } else if (queryNode.getType() == QueryNode.TYPE_LOCATION) { ((LocationStepQueryNode) queryNode).setIndex(1); } else { if (queryNode.getType() == QueryNode.TYPE_RELATION) { ((RelationQueryNode) queryNode).setPositionValue(LocationStepQueryNode.LAST); } else if (queryNode.getType() == QueryNode.TYPE_LOCATION) { ((LocationStepQueryNode) queryNode).setIndex(LocationStepQueryNode.LAST); } else { if (queryNode.getType() == QueryNode.TYPE_LOCATION) { LocationStepQueryNode loc = (LocationStepQueryNode) queryNode; if (queryNode.getType() == QueryNode.TYPE_PATH) { PathQueryNode pathNode = (PathQueryNode) queryNode;
public Object visit(NotQueryNode node, Object data) throws RepositoryException { StringBuffer sb = (StringBuffer) data; QueryNode[] operands = node.getOperands(); if (operands.length > 0) { sb.append("NOT "); operands[0].accept(this, sb); } return sb; }
if (aPred.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode pos = (RelationQueryNode) aPred; if (pos.getValueType() == QueryConstants.TYPE_POSITION) {
public Object visit(AndQueryNode node, Object data) throws RepositoryException { StringBuffer sb = (StringBuffer) data; String and = ""; QueryNode[] operands = node.getOperands(); for (int i = 0; i < operands.length; i++) { sb.append(and); operands[i].accept(this, sb); and = " and "; } return sb; }
if (aPred.getType() == QueryNode.TYPE_RELATION) { RelationQueryNode pos = (RelationQueryNode) aPred; if (pos.getValueType() == QueryConstants.TYPE_POSITION) {