@Override public boolean equals(Object other) { if (other instanceof OrderElem) { OrderElem o = (OrderElem)other; return ascending == o.isAscending() && expr.equals(o.getExpr()); } return false; }
/** * @inheritDoc */ @Override public QueryBuilder<T> orderByDesc(String... theNames) { // null safe if (theNames != null) { for (String aName : theNames) { mOrderByElems.add(new OrderElem(new Var(aName), false)); } } return this; }
@Override public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X { for (OrderElem elem : elements) { elem.visit(visitor); } super.visitChildren(visitor); }
public OrderElem(ValueExpr expr, boolean ascending) { setExpr(expr); setAscending(ascending); }
@Override public Order clone() { Order clone = (Order)super.clone(); clone.elements = new ArrayList<OrderElem>(getElements().size()); for (OrderElem elem : getElements()) { clone.addElement(elem.clone()); } return clone; } }
@Override public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) { if (expr == current) { setExpr((ValueExpr)replacement); } else { super.replaceChildNode(current, replacement); } }
public OrderElem(ValueExpr expr, boolean ascending) { setExpr(expr); setAscending(ascending); }
@Override public Order clone() { Order clone = (Order)super.clone(); clone.elements = new ArrayList<>(getElements().size()); for (OrderElem elem : getElements()) { clone.addElement(elem.clone()); } return clone; } }
@Override public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) { if (expr == current) { setExpr((ValueExpr)replacement); } else { super.replaceChildNode(current, replacement); } }
@Override public boolean equals(Object other) { if (other instanceof OrderElem) { OrderElem o = (OrderElem)other; return ascending == o.isAscending() && expr.equals(o.getExpr()); } return false; }
/** * @inheritDoc */ @Override public QueryBuilder<T> orderByDesc(String... theNames) { // null safe if (theNames != null) { for (String aName : theNames) { mOrderByElems.add(new OrderElem(new Var(aName), false)); } } return this; }
@Override public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X { for (OrderElem elem : elements) { elem.visit(visitor); } super.visitChildren(visitor); }
public ComparableBindingSetWrapper(EvaluationStrategy strategy, BindingSet bs, List<OrderElem> elements, long minorOrder) throws QueryEvaluationException { this.bs = bs; this.values = new Value[elements.size()]; this.ascending = new boolean[elements.size()]; for (int i = 0; i < values.length; i++) { OrderElem oe = elements.get(i); try { values[i] = strategy.evaluate(oe.getExpr(), bs); } catch (ValueExprEvaluationException exc) { values[i] = null; } ascending[i] = oe.isAscending(); } this.minorOrder = minorOrder; }
/** * @inheritDoc */ @Override public QueryBuilder<T> orderByDesc(String... theNames) { // null safe if (theNames != null) { for (String aName : theNames) { mOrderByElems.add(new OrderElem(new Var(aName), false)); } } return this; }
@Override public void meet(Order node) throws RDFHandlerException { Resource orderByList = valueFactory.createBNode(); handler.handleStatement( valueFactory.createStatement(subject, SP.ORDER_BY_PROPERTY, orderByList)); ListContext orderByCtx = newList(orderByList); for (OrderElem elem : node.getElements()) { elem.visit(this); } endList(orderByCtx); }
@Override public void meet(OrderElem node) throws RDFHandlerException { IRI asc = node.isAscending() ? SP.ASC_CLASS : SP.DESC_CLASS; listEntry(); handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, asc)); SpinVisitor.this.meet(node.getExpr()); }
/** * @inheritDoc */ @Override public QueryBuilder<T> orderByAsc(String... theNames) { // null safe if (theNames != null) { for (String aName : theNames) { mOrderByElems.add(new OrderElem(new Var(aName), true)); } } return this; }
@Override public void meet(Order node) { for (OrderElem e : node.getElements()) { e.visit(this); } if (variablesProjected) { QueryModelNode parent = node.getParentNode(); if (projection == parent) { node.replaceWith(node.getArg().clone()); node.setArg(projection.clone()); Order replacement = node.clone(); projection.replaceWith(replacement); QueryModelNode distinct = replacement.getParentNode(); if (distinct instanceof Distinct) { distinct.replaceWith(new Reduced(replacement.clone())); } } } }