Search in sources :

Example 6 with Var

use of org.openrdf.query.algebra.Var in project backstage by zepheira.

the class ListFacet method update.

@Override
public void update(TupleQueryBuilder queryBuilder, Var itemVar, BackChannel backChannel) throws ExpressionException {
    _builder = queryBuilder;
    _itemVar = itemVar;
    ExpressionResult result = _expression.computeOutputOnItem(_context.getDatabase(), _builder, _itemVar);
    if (!(result.valueExpr instanceof Var)) {
        throw new ExpressionException("Facet expression does not evaluate to a Var");
    }
    _valueVar = (Var) result.valueExpr;
    _valueType = result.valueType;
    _countVar = _builder.makeVar("count");
    backChannel.addComponentChangingState(this);
}
Also used : ExpressionResult(edu.mit.simile.backstage.model.data.ExpressionResult) Var(org.openrdf.query.algebra.Var) ExpressionException(edu.mit.simile.backstage.model.data.ExpressionException)

Example 7 with Var

use of org.openrdf.query.algebra.Var in project backstage by zepheira.

the class ListFacet method restrict.

@Override
public void restrict(TupleQueryBuilder builder, Var itemVar) throws ExpressionException {
    if (!hasRestrictions()) {
        return;
    }
    ExpressionResult result = _expression.computeOutputOnItem(_context.getDatabase(), builder, itemVar);
    if (!(result.valueExpr instanceof Var)) {
        throw new ExpressionException("Facet expression does not evaluate to a Var");
    }
    ValueExpr input = result.valueExpr;
    ValueExpr condition = null;
    if (_selectMissing) {
    // what do we do???
    }
    for (String v : _selection) {
        condition = createRestrictionClause(builder, v, result.valueType, input, condition);
    }
    builder.addCondition(condition);
}
Also used : ValueExpr(org.openrdf.query.algebra.ValueExpr) ExpressionResult(edu.mit.simile.backstage.model.data.ExpressionResult) Var(org.openrdf.query.algebra.Var) ExpressionException(edu.mit.simile.backstage.model.data.ExpressionException)

Example 8 with Var

use of org.openrdf.query.algebra.Var in project backstage by zepheira.

the class Collection method getRestrictedItems.

public Var getRestrictedItems(TupleQueryBuilder builder, Var defaultVar) {
    Var itemVar = getAllItems(builder, defaultVar);
    computeRestrictedItems(builder, itemVar, null);
    return itemVar;
}
Also used : Var(org.openrdf.query.algebra.Var)

Example 9 with Var

use of org.openrdf.query.algebra.Var in project backstage by zepheira.

the class Expression method computeOutputOnValue.

public ExpressionQueryResult computeOutputOnValue(Value value, Database database, SailRepositoryConnection connection) throws ExpressionException {
    TupleQueryBuilder builder = new TupleQueryBuilder();
    Var valueVar = builder.makeVar("value", value);
    ExpressionResult expressionResult = computeOutputOnItem(database, builder, valueVar);
    if (expressionResult.valueExpr instanceof Var) {
        Var resultVar = (Var) expressionResult.valueExpr;
        ProjectionElemList projectionElements = new ProjectionElemList();
        projectionElements.addElement(new ProjectionElem(resultVar.getName()));
        TupleExpr t = builder.makeFilterTupleExpr();
        if (t == null) {
            // TODO[dfhuynh]: This happens if the expression is just "value". I'm not sure what to do here.
            return null;
        }
        Projection projection = new Projection(t, projectionElements);
        TupleQuery query = new MyTupleQuery(new ParsedTupleQuery(projection), connection);
        return new ExpressionQueryResult(query, expressionResult.valueType, resultVar);
    }
    return null;
}
Also used : ProjectionElemList(org.openrdf.query.algebra.ProjectionElemList) Var(org.openrdf.query.algebra.Var) Projection(org.openrdf.query.algebra.Projection) TupleQueryBuilder(edu.mit.simile.backstage.model.TupleQueryBuilder) ParsedTupleQuery(org.openrdf.query.parser.ParsedTupleQuery) MyTupleQuery(edu.mit.simile.backstage.util.MyTupleQuery) TupleQuery(org.openrdf.query.TupleQuery) MyTupleQuery(edu.mit.simile.backstage.util.MyTupleQuery) ProjectionElem(org.openrdf.query.algebra.ProjectionElem) TupleExpr(org.openrdf.query.algebra.TupleExpr) ParsedTupleQuery(org.openrdf.query.parser.ParsedTupleQuery)

Aggregations

Var (org.openrdf.query.algebra.Var)9 TupleQueryBuilder (edu.mit.simile.backstage.model.TupleQueryBuilder)3 StatementPattern (org.openrdf.query.algebra.StatementPattern)3 ExpressionException (edu.mit.simile.backstage.model.data.ExpressionException)2 ExpressionResult (edu.mit.simile.backstage.model.data.ExpressionResult)2 ValueExpr (org.openrdf.query.algebra.ValueExpr)2 PropertyRecord (edu.mit.simile.backstage.model.data.Database.PropertyRecord)1 MyTupleQuery (edu.mit.simile.backstage.util.MyTupleQuery)1 Scriptable (org.mozilla.javascript.Scriptable)1 TupleQuery (org.openrdf.query.TupleQuery)1 Projection (org.openrdf.query.algebra.Projection)1 ProjectionElem (org.openrdf.query.algebra.ProjectionElem)1 ProjectionElemList (org.openrdf.query.algebra.ProjectionElemList)1 TupleExpr (org.openrdf.query.algebra.TupleExpr)1 ParsedTupleQuery (org.openrdf.query.parser.ParsedTupleQuery)1