Search in sources :

Example 36 with Expr

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());
}
Also used : Expr(org.apache.jena.sparql.expr.Expr) E_Random(org.apache.jena.sparql.expr.E_Random) ContractTest(org.xenei.junit.contract.ContractTest)

Example 37 with Expr

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);
}
Also used : Expr(org.apache.jena.sparql.expr.Expr) E_Random(org.apache.jena.sparql.expr.E_Random) Var(org.apache.jena.sparql.core.Var) VarExprList(org.apache.jena.sparql.core.VarExprList) Test(org.junit.Test)

Example 38 with Expr

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(" )");
}
Also used : Expr(org.apache.jena.sparql.expr.Expr)

Example 39 with Expr

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();
    }
}
Also used : Expr(org.apache.jena.sparql.expr.Expr)

Example 40 with Expr

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;
    }
}
Also used : Expr(org.apache.jena.sparql.expr.Expr) Var(org.apache.jena.sparql.core.Var)

Aggregations

Expr (org.apache.jena.sparql.expr.Expr)82 Var (org.apache.jena.sparql.core.Var)28 ExprList (org.apache.jena.sparql.expr.ExprList)15 NodeValue (org.apache.jena.sparql.expr.NodeValue)15 Op (org.apache.jena.sparql.algebra.Op)13 ExprVar (org.apache.jena.sparql.expr.ExprVar)12 FunctionEnvBase (org.apache.jena.sparql.function.FunctionEnvBase)9 Test (org.junit.Test)9 VarExprList (org.apache.jena.sparql.core.VarExprList)8 Node (org.apache.jena.graph.Node)7 E_Random (org.apache.jena.sparql.expr.E_Random)7 ArrayList (java.util.ArrayList)5 Triple (org.apache.jena.graph.Triple)4 E_Multiply (org.apache.jena.sparql.expr.E_Multiply)4 E_Regex (org.apache.jena.sparql.expr.E_Regex)4 ContractTest (org.xenei.junit.contract.ContractTest)4 IndentedLineBuffer (org.apache.jena.atlas.io.IndentedLineBuffer)3 ExprAggregator (org.apache.jena.sparql.expr.ExprAggregator)3 InternalErrorException (org.apache.jena.atlas.lib.InternalErrorException)2 Query (org.apache.jena.query.Query)2