/** * Returns the ordering specification, if any, implied by this document * selection expression. * * @param order The order of the */ public OrderingSpecification getOrdering(int order) { return expression.getOrdering(order); }
public OrderingSpecification getOrdering(int order) { Stack<OrderingItem> buf = new Stack<>(); for (NodeItem item : items) { if (!buf.isEmpty()) { while (buf.peek().operator > item.operator) { pickOrdering(buf); } } buf.push(new OrderingItem(item.operator, item.node.getOrdering(order))); } while (buf.size() > 1) { pickOrdering(buf); } return buf.pop().ordering; }