package org.aksw.jena_sparql_api.shape.algebra.op;
import org.aksw.jena_sparql_api.concepts.Concept;
import org.aksw.jena_sparql_api.shape.syntax.Element;
import org.aksw.jena_sparql_api.shape.syntax.ElementVisitor;
import org.aksw.jena_sparql_api.shape.syntax.ElementVisitorSparql;
import org.aksw.jena_sparql_api.utils.Generator;
import org.aksw.jena_sparql_api.utils.VarGeneratorImpl2;
import org.apache.jena.sparql.core.Var;
public class Algebra {
protected static final ElementVisitor<Op> elementCompiler = new ElementVisitorSparql();
public static Op compile(Element e) {
Op result = e.accept(elementCompiler);
return result;
}
public static Concept toConcept(Op op) {
Generator<Var> generator = VarGeneratorImpl2.create();
OpVisitor<Concept> opCompiler = new OpVisitorSparql(generator);
Concept result = op.accept(opCompiler);
return result;
}
}