package org.aksw.sparqlify.core.rewrite.expr.transform;
import java.util.ArrayList;
import java.util.List;
import org.aksw.jena_sparql_api.views.E_RdfTerm;
import org.aksw.jena_sparql_api.views.ExprCopy;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.sparql.expr.Expr;
public class ExprTransformerFunction
implements ExprTransformer
{
private Resource resultType;
public ExprTransformerFunction(Resource resultType) {
this.resultType = resultType;
}
@Override
public E_RdfTerm transform(Expr fn, List<E_RdfTerm> exprs) {
List<Expr> tmp = new ArrayList<Expr>(exprs.size());
for(E_RdfTerm expr : exprs) {
tmp.add(expr.getLexicalValue());
}
Expr newVal = ExprCopy.getInstance().copy(fn, tmp);
E_RdfTerm result = E_RdfTerm.createTypedLiteral(newVal, resultType);
return result;
}
}