package org.aksw.sparqlify.core;
import java.util.List;
import org.aksw.jena_sparql_api.exprs_ext.E_StrConcatPermissive;
import org.aksw.jena_sparql_api.views.ExprCopy;
import org.apache.jena.sparql.expr.E_StrConcat;
import org.apache.jena.sparql.expr.Expr;
import org.apache.jena.sparql.expr.ExprFunction;
import org.apache.jena.sparql.expr.ExprList;
/**
* We replace the original StrConcat with a custom version,
* as it causes trouble when mixing types.
*
*
*
* @author raven
*
*/
public class MakeExprPermissive
extends ExprCopy
{
private static ExprCopy instance;
public static ExprCopy getInstance()
{
if(instance == null) {
instance = new MakeExprPermissive();
}
return instance;
}
// public static Expr _copy(E_StrConcat func, ExprList args) {
// return new E_StrConcatPermissive(args);
// }
@Override
public Expr deepCopy(ExprFunction proto, List<Expr> args) {
Expr result;
if(proto instanceof E_StrConcat) {
result = new E_StrConcatPermissive(new ExprList(args));
} else {
result = super.deepCopy(proto, args);
}
return result;
}
}