package org.aksw.jena_sparql_api.batch.reader;
import org.aksw.jena_sparql_api.utils.QuadUtils;
import com.google.common.base.Predicate;
import org.apache.jena.sparql.core.Quad;
import org.apache.jena.sparql.engine.binding.Binding;
import org.apache.jena.sparql.expr.Expr;
import org.apache.jena.sparql.expr.NodeValue;
import org.apache.jena.sparql.function.FunctionEnv;
import org.apache.jena.sparql.function.FunctionEnvBase;
public class PredicateQuadExpr
implements Predicate<Quad>
{
private Expr expr;
public PredicateQuadExpr(Expr expr) {
this.expr = expr;
}
@Override
public boolean apply(Quad quad) {
Binding binding = QuadUtils.quadToBinding(quad);
NodeValue tmp = expr.eval(binding, FunctionEnvBase.createTest());
boolean result = tmp.isBoolean() ? tmp.getBoolean() : true;
return result;
}
}