public void addOrderBy(Expr expr, int direction) { SortCondition sc = new SortCondition(expr, direction) ; addOrderBy(sc) ; }
public SparqlSelectFunction<T> addOrderBy(Expr expr, int direction) { SortCondition sc = new SortCondition(expr, direction) ; addOrderBy(sc) ; return this; }
private static void transformSortConditions(List<SortCondition> conditions, ExprTransform exprTransform) { for (int i = 0; i < conditions.size(); i++) { SortCondition s1 = conditions.get(i); Expr e = ExprTransformer.transform(exprTransform, s1.expression); if (e == null || s1.expression.equals(e)) continue; conditions.set(i, new SortCondition(e, s1.direction)); } }
protected List<SortCondition> transform(List<SortCondition> conditions) { List<SortCondition> conditions2 = new ArrayList<>() ; boolean changed = false ; for ( SortCondition sc : conditions ) { Expr e = sc.getExpression() ; Expr e2 = transform(e) ; conditions2.add(new SortCondition(e2, sc.getDirection())) ; if ( e != e2 ) changed = true ; } if ( changed ) return conditions2 ; else return conditions ; }
public static List<SortCondition> transform(NodeTransform nodeTransform, List<SortCondition> conditions) { List<SortCondition> conditions2 = new ArrayList<>() ; boolean same = true ; for ( SortCondition sc : conditions ) { Expr expr = sc.getExpression() ; Expr expr2 = NodeTransformLib.transform(nodeTransform, expr) ; if ( expr != expr2 ) same = false ; SortCondition sc2 = new SortCondition(expr2, sc.getDirection()) ; conditions2.add(sc2) ; } if ( same ) return conditions ; return conditions2 ; }
public void addOrderBy(Node var, int direction) { if ( ! var.isVariable() ) throw new QueryException("Not a variable: "+var) ; SortCondition sc = new SortCondition(var, direction) ; addOrderBy(sc) ; }
private List<SortCondition> processConditions(List<SortCondition> baseConditions, List<SortCondition> processedConditions, Var var) { List<SortCondition> inputConditions = processedConditions != null ? processedConditions : baseConditions; List<SortCondition> outputConditions = new ArrayList<>(); for (SortCondition cond : inputConditions) { Expr e = cond.getExpression(); e = ExprTransformer.transform(new ExprTransformSubstitute(var, getAssignExpr(var)), e); outputConditions.add(new SortCondition(e, cond.getDirection())); } return outputConditions; }
public SparqlSelectFunction<T> addOrderBy(Node var, int direction) { if ( ! var.isVariable() ) throw new QueryException("Not a variable: "+var) ; SortCondition sc = new SortCondition(var, direction) ; addOrderBy(sc) ; return this; }
/** * Use Query.ORDER_* for the direction value. * @param varName * @param direction */ public SparqlSelectFunction<T> addOrderBy(String varName, int direction) { varName = Var.canonical(varName) ; SortCondition sc = new SortCondition(new ExprVar(varName), direction) ; addOrderBy(sc) ; return this; }
public void addOrderBy(String varName, int direction) { varName = Var.canonical(varName) ; SortCondition sc = new SortCondition(new ExprVar(varName), direction) ; addOrderBy(sc) ; }
public final SortCondition rewrite(SortCondition sortCondition) { sortCondition.getExpression().visit(this); return new SortCondition(pop(), sortCondition.getDirection()); }
public final SortCondition rewrite(SortCondition sortCondition) { sortCondition.getExpression().visit(this); return new SortCondition(pop(), sortCondition.getDirection()); }
@Override public void visit(OpOrder opOrder) { List<SortCondition> conditions = opOrder.getConditions() ; List<SortCondition> conditions2 = new ArrayList<>() ; boolean changed = false ; for ( SortCondition sc : conditions ) { Expr e = sc.getExpression() ; Expr e2 = transform(e) ; conditions2.add(new SortCondition(e2, sc.getDirection())) ; if ( e != e2 ) changed = true ; } OpOrder x = opOrder ; if ( changed ) x = new OpOrder(opOrder.getSubOp(), conditions2) ; visit1(x) ; }
SortCondition scBuilder(Item item) { int direction = Query.ORDER_DEFAULT ; if ( item.isTagged("asc") || item.isTagged("desc") ) { BuilderLib.checkList(item) ; BuilderLib.checkLength(2, item.getList(), "Direction corrupt") ; if ( item.isTagged("asc") ) direction = Query.ORDER_ASCENDING ; else direction = Query.ORDER_DESCENDING ; item = item.getList().get(1) ; } Expr expr = BuilderExpr.buildExpr(item) ; if ( expr.isVariable() ) return new SortCondition(expr.getExprVar().asVar(), direction) ; else return new SortCondition(expr, direction) ; }
conditions.add(new SortCondition(new ExprVar("8"), Query.ORDER_ASCENDING)); conditions.add(new SortCondition(new ExprVar("1"), Query.ORDER_ASCENDING)); conditions.add(new SortCondition(new ExprVar("0"), Query.ORDER_DESCENDING)); BindingComparator comparator = new BindingComparator(conditions);
query.addOrderBy(sc) ; else query.addOrderBy(new SortCondition(expr, sc.getDirection())) ; }) ;
sortConditions.add(new SortCondition(e, dir));
sortConditions.add(new SortCondition(e, dir));
@Before public void setup() { random = new Random(); Var[] vars = new Var[]{ Var.alloc("1"), Var.alloc("2"), Var.alloc("3"), Var.alloc("4"), Var.alloc("5"), Var.alloc("6"), Var.alloc("7"), Var.alloc("8"), Var.alloc("9"), Var.alloc("0") }; unsorted = new ArrayList<>(); for(int i = 0; i < 500; i++){ unsorted.add(randomBinding(vars)); } List<SortCondition> conditions = new ArrayList<>(); conditions.add(new SortCondition(new ExprVar("8"), Query.ORDER_ASCENDING)); comparator = new BindingComparator(conditions); iterator = new CallbackIterator(unsorted.iterator(), 25, null); iterator.setCallback(new Callback() { @Override public void call() { throw new QueryCancelledException() ; } }); }
conditions.add(new SortCondition(new ExprVar("8"), Query.ORDER_ASCENDING)); BindingComparator comparator = new BindingComparator(conditions);