for (int i = 0; i < specs.length; i++) { sb.append(comma); Path propPath = specs[i].getPropertyPath(); Path.Element[] elements = propPath.getElements(); sb.append(" "); if (!specs[i].isAscending()) { sb.append(" descending");
/** * Adds an order specification to this query node. * * @param property the relative path of the property. * @param ascending if <code>true</code> values of this properties are * ordered ascending; descending if <code>false</code>. */ public void addOrderSpec(Path property, boolean ascending) { specs.add(new OrderSpec(property, ascending)); }
/** * Set the last order specification of this query node to ascending/descending * @see OrderSpec#setAscending(boolean) * * @param value <code>true</code> for ascending and <code>false</code> for * descending. * @throws IllegalStateException if no order specification is set */ public void setAscending(boolean value) { if (specs.size() == 0) { throw new IllegalStateException("No order specification set"); } OrderSpec orderSpec = specs.get(specs.size() - 1); orderSpec.setAscending(value); }
String[] orderFuncs = new String[orderSpecs.length]; for (int i = 0; i < orderSpecs.length; i++) { orderProperties[i] = orderSpecs[i].getPropertyPath(); ascSpecs[i] = orderSpecs[i].isAscending(); orderFuncs[i] = orderSpecs[i].getFunction();
for (int i = 0; i < specs.length; i++) { sb.append(comma); Path propPath = specs[i].getPropertyPath(); Path.Element[] elements = propPath.getElements(); sb.append(" "); if (!specs[i].isAscending()) { sb.append(" descending");
boolean[] ascSpecs = new boolean[orderSpecs.length]; for (int i = 0; i < orderSpecs.length; i++) { orderProperties[i] = orderSpecs[i].getPropertyPath(); ascSpecs[i] = orderSpecs[i].isAscending();
String[] orderFuncs = new String[orderSpecs.length]; for (int i = 0; i < orderSpecs.length; i++) { orderProperties[i] = orderSpecs[i].getPropertyPath(); ascSpecs[i] = orderSpecs[i].isAscending(); orderFuncs[i] = orderSpecs[i].getFunction();
String[] orderFuncs = new String[orderSpecs.length]; for (int i = 0; i < orderSpecs.length; i++) { orderProperties[i] = orderSpecs[i].getPropertyPath(); ascSpecs[i] = orderSpecs[i].isAscending(); orderFuncs[i] = orderSpecs[i].getFunction();
public Object visit(OrderQueryNode node, Object data) { StringBuffer sb = (StringBuffer) data; sb.append(" ORDER BY"); OrderQueryNode.OrderSpec[] specs = node.getOrderSpecs(); if (specs.length > 0) { try { String comma = ""; for (int i = 0; i < specs.length; i++) { sb.append(comma).append(" "); Path propPath = specs[i].getPropertyPath(); if (propPath.getLength() > 1) { exceptions.add(new InvalidQueryException("SQL does not support relative paths in order by clause")); return sb; } appendName(propPath.getName(), resolver, sb); if (!specs[i].isAscending()) { sb.append(" DESC"); } comma = ","; } } catch (NamespaceException e) { exceptions.add(e); } } else { sb.append(" SCORE"); } return sb; }
public Object visit(OrderQueryNode node, Object data) { StringBuffer sb = (StringBuffer) data; sb.append(" ORDER BY"); OrderQueryNode.OrderSpec[] specs = node.getOrderSpecs(); if (specs.length > 0) { try { String comma = ""; for (int i = 0; i < specs.length; i++) { sb.append(comma).append(" "); Path propPath = specs[i].getPropertyPath(); if (propPath.getLength() > 1) { exceptions.add(new InvalidQueryException("SQL does not support relative paths in order by clause")); return sb; } appendName(propPath.getName(), resolver, sb); if (!specs[i].isAscending()) { sb.append(" DESC"); } comma = ","; } } catch (NamespaceException e) { exceptions.add(e); } } else { sb.append(" SCORE"); } return sb; }
public Object visit(OrderQueryNode node, Object data) { StringBuffer buffer = (StringBuffer) data; buffer.append(PADDING, 0, indent); buffer.append("+ OrderQueryNode"); buffer.append("\n"); OrderQueryNode.OrderSpec[] specs = node.getOrderSpecs(); for (int i = 0; i < specs.length; i++) { buffer.append(PADDING, 0, indent); buffer.append(" "); appendPath(specs[i].getPropertyPath(), buffer); buffer.append(" asc=").append(specs[i].isAscending()); buffer.append("\n"); } return buffer; }
/** * Set the function of the last order specification of this query node. * @see OrderSpec#setFunction(String) * * @param name a function name * @throws IllegalStateException if no order specification is set */ public void setFunction(String name) { if (specs.size() == 0) { throw new IllegalStateException("No order specification set"); } OrderSpec orderSpec = specs.get(specs.size() - 1); orderSpec.setFunction(name); }
/** * Set the path of the last order specification of this query node. * @see OrderSpec#setPath(org.apache.jackrabbit.spi.Path) * * @param path a path * @throws IllegalStateException if no order specification is set */ public void setPath(Path path) { if (specs.size() == 0) { throw new IllegalStateException("No order specification set"); } OrderSpec orderSpec = specs.get(specs.size() - 1); orderSpec.setPath(path); }
/** * Set the function of the last order specification of this query node. * @see OrderSpec#setFunction(String) * * @param name a function name * @throws IllegalStateException if no order specification is set */ public void setFunction(String name) { if (specs.size() == 0) { throw new IllegalStateException("No order specification set"); } OrderSpec orderSpec = specs.get(specs.size() - 1); orderSpec.setFunction(name); }
public Object visit(OrderQueryNode node, Object data) { StringBuffer buffer = (StringBuffer) data; buffer.append(PADDING, 0, indent); buffer.append("+ OrderQueryNode"); buffer.append("\n"); OrderQueryNode.OrderSpec[] specs = node.getOrderSpecs(); for (int i = 0; i < specs.length; i++) { buffer.append(PADDING, 0, indent); buffer.append(" "); appendPath(specs[i].getPropertyPath(), buffer); buffer.append(" asc=").append(specs[i].isAscending()); buffer.append("\n"); } return buffer; }
public Object visit(ASTOrderSpec node, Object data) { OrderQueryNode order = (OrderQueryNode) data; final Name[] identifier = new Name[1]; // collect identifier node.childrenAccept(new DefaultParserVisitor() { public Object visit(ASTIdentifier node, Object data) { identifier[0] = node.getName(); return data; } }, data); OrderQueryNode.OrderSpec spec = new OrderQueryNode.OrderSpec(identifier[0], true); order.addOrderSpec(spec); node.childrenAccept(this, spec); return data; }
/** * Set the last order specification of this query node to ascending/descending * @see OrderSpec#setAscending(boolean) * * @param value <code>true</code> for ascending and <code>false</code> for * descending. * @throws IllegalStateException if no order specification is set */ public void setAscending(boolean value) { if (specs.size() == 0) { throw new IllegalStateException("No order specification set"); } OrderSpec orderSpec = specs.get(specs.size() - 1); orderSpec.setAscending(value); }
public Object visit(ASTOrderSpec node, Object data) { OrderQueryNode order = (OrderQueryNode) data; final Name[] identifier = new Name[1]; // collect identifier node.childrenAccept(new DefaultParserVisitor() { public Object visit(ASTIdentifier node, Object data) { identifier[0] = node.getName(); return data; } }, data); OrderQueryNode.OrderSpec spec = new OrderQueryNode.OrderSpec(identifier[0], true); order.addOrderSpec(spec); node.childrenAccept(this, spec); return data; }
/** * Checks whether all order specifications of this query node have at least * its path specified (i.e. non <code>null</code>.) * * @return <code>true</code> iff all order specification of this query node are valid. */ public boolean isValid() { for (OrderSpec spec : specs) { if (spec.getPropertyPath() == null) { return false; } } return true; }
/** * Set the path of the last order specification of this query node. * @see OrderSpec#setPath(org.apache.jackrabbit.spi.Path) * * @param path a path * @throws IllegalStateException if no order specification is set */ public void setPath(Path path) { if (specs.size() == 0) { throw new IllegalStateException("No order specification set"); } OrderSpec orderSpec = specs.get(specs.size() - 1); orderSpec.setPath(path); }