package org.aksw.sparqlify.core.sparql.algebra.transform;
import org.aksw.jena_sparql_api.restriction.RestrictionManagerImpl;
import org.aksw.sparqlify.core.algorithms.OpMapping;
import org.aksw.sparqlify.database.FilterPlacementOptimizer2;
import org.apache.jena.sparql.algebra.Op;
public class FilterPlacementOptimizer2Sparqlify
extends FilterPlacementOptimizer2
{
private static FilterPlacementOptimizer2Sparqlify instance;
public static FilterPlacementOptimizer2Sparqlify get() {
if(instance == null) {
instance = new FilterPlacementOptimizer2Sparqlify();
}
return instance;
}
public static Op optimizeStatic(Op op) {
Op result = optimizeStatic(op, null);
return result;
// RestrictionManagerImpl cnf = new RestrictionManagerImpl();
//
// FilterPlacementOptimizer2Sparqlify x = get();
// //Op result = MultiMethod.invoke(FilterPlacementOptimizer2.class, "_optimize", op, cnf);
// Op result = MultiMethod.invoke(x, "_optimize", op, cnf);
// return result;
}
public static Op optimizeStatic(Op op, RestrictionManagerImpl cnf) {
if(cnf == null) {
cnf = new RestrictionManagerImpl();
}
FilterPlacementOptimizer2Sparqlify x = get();
Op result = x.optimize(op, cnf);
//Op result = MultiMethod.invoke(x, "_optimize", op, cnf);
return result;
}
public Op _optimize(OpMapping op, RestrictionManagerImpl cnf) {
return surroundWithFilterIfNeccessary(op, cnf);
}
}