use of org.apache.jena.sparql.expr.Expr in project jena by apache.
the class SolutionModifierTest method testAddOrderByExpr.
@ContractTest
public void testAddOrderByExpr() {
SolutionModifierClause<?> solutionModifier = getProducer().newInstance();
Expr e = new E_Random();
AbstractQueryBuilder<?> builder = solutionModifier.addOrderBy(e);
assertContainsRegex(ORDER_BY + "rand" + OPEN_PAREN + CLOSE_PAREN, builder.buildString());
builder = solutionModifier.addOrderBy("bar");
assertContainsRegex(ORDER_BY + "rand" + OPEN_PAREN + CLOSE_PAREN + SPACE + var("bar"), builder.buildString());
}
use of org.apache.jena.sparql.expr.Expr in project jena by apache.
the class SelectHandlerTest method testAddStringVar.
@Test
public void testAddStringVar() {
Var v = Var.alloc("foo");
handler.addVar("rand()", v);
VarExprList expr = query.getProject();
assertEquals(1, expr.size());
Expr e = expr.getExpr(Var.alloc("foo"));
assertNotNull("expression should not be null", e);
assertTrue("Should be an E_Random", e instanceof E_Random);
}
use of org.apache.jena.sparql.expr.Expr in project jena by apache.
the class FormatterElement method visit.
@Override
public void visit(ElementFilter el) {
out.print("FILTER ");
Expr expr = el.getExpr();
FmtExprSPARQL v = new FmtExprSPARQL(out, context);
// This assumes that complex expressions are bracketted
// (parens) as necessary except for some cases:
// Plain variable or constant
boolean addParens = false;
if (expr.isVariable())
addParens = true;
if (expr.isConstant())
addParens = true;
if (addParens)
out.print("( ");
v.format(expr);
if (addParens)
out.print(" )");
}
use of org.apache.jena.sparql.expr.Expr in project jena by apache.
the class QuerySerializer method visitHaving.
@Override
public void visitHaving(Query query) {
if (query.hasHaving()) {
out.print("HAVING");
for (Expr expr : query.getHavingExprs()) {
out.print(" ");
fmtExpr.format(expr);
}
out.println();
}
}
use of org.apache.jena.sparql.expr.Expr in project jena by apache.
the class QuerySerializer method appendNamedExprList.
void appendNamedExprList(Query query, IndentedWriter sb, VarExprList namedExprs) {
boolean first = true;
for (Var var : namedExprs.getVars()) {
Expr expr = namedExprs.getExpr(var);
if (!first)
sb.print(" ");
if (expr != null) {
// The following are safe to write without ()
// Compare/merge with fmtExpr.format
boolean needParens = true;
if (expr.isFunction())
needParens = false;
else // needParens = false ;
if (expr.isVariable())
needParens = false;
if (!Var.isAllocVar(var))
// AS ==> need parens
needParens = true;
if (needParens)
out.print("(");
fmtExpr.format(expr);
if (!Var.isAllocVar(var)) {
sb.print(" AS ");
sb.print(var.toString());
}
if (needParens)
out.print(")");
} else {
sb.print(var.toString());
}
first = false;
}
}
Aggregations