package org.aksw.sparqlify.core.algorithms; import java.util.ArrayList; import java.util.List; import org.aksw.jena_sparql_api.views.ExprCopy; import org.apache.jena.sparql.expr.Expr; import org.apache.jena.sparql.expr.ExprFunction; public abstract class ExprTransformerBase implements ExprTransformer { //protected ExprEvaluator exprEvaluator; public ExprTransformerBase() { } /** * Default processing is to pass the arguments to the evaluator * */ @Override public Expr transform(ExprFunction fn) { List<Expr> args = fn.getArgs(); List<Expr> newArgs = new ArrayList<Expr>(args.size()); for(Expr arg : args) { //Expr tmp = exprEvaluator.transform(arg); Expr newArg = transformArg(arg); // SqlTranslationUtils.getLexicalValueOrExpr(arg); newArgs.add(newArg); } Expr result = buildExpr(fn, newArgs); return result; } protected Expr transformArg(Expr expr) { return expr; } protected Expr buildExpr(ExprFunction originalExpr, List<Expr> newArgs) { Expr result = ExprCopy.getInstance().copy(originalExpr, newArgs); return result; } }