package org.aksw.sparqlify.algebra.sql.exprs2; import java.util.List; import org.aksw.sparqlify.core.TypeToken; import org.apache.jena.atlas.io.IndentedWriter; public interface SqlExpr { List<SqlExpr> getArgs(); //TypeToken getDatatype(); TypeToken getDatatype(); boolean isVariable(); boolean isConstant(); boolean isFunction(); SqlExprType getType(); SqlExprFunction asFunction(); SqlExprConstant asConstant(); SqlExprVar asVariable(); /* Converts the SqlExpr back into an Expr * Null if not possible */ //SqlExpr eval(); //Expr asExpr(); public void asString(IndentedWriter writer); public <T> T accept(SqlExprVisitor<T> visitor); }