package org.aksw.sparqlify.util;
import org.aksw.sparqlify.algebra.sql.exprs2.S_LogicalAnd;
import org.aksw.sparqlify.algebra.sql.exprs2.S_LogicalNot;
import org.aksw.sparqlify.algebra.sql.exprs2.S_LogicalOr;
import org.aksw.sparqlify.algebra.sql.exprs2.SqlExpr;
import org.aksw.sparqlify.algebra.sql.exprs2.SqlExpr1;
import org.aksw.sparqlify.algebra.sql.exprs2.SqlExpr2;
public class SqlExprAccessor
implements ExprAccessor<SqlExpr>
{
@Override
public boolean isLogicalNot(SqlExpr expr) {
return expr instanceof S_LogicalNot;
}
@Override
public boolean isLogicalAnd(SqlExpr expr) {
return expr instanceof S_LogicalAnd;
}
@Override
public boolean isLogicalOr(SqlExpr expr) {
return expr instanceof S_LogicalOr;
}
@Override
public SqlExpr getArg(SqlExpr expr) {
return ((SqlExpr1)expr).getExpr();
}
@Override
public SqlExpr getArg1(SqlExpr expr) {
return ((SqlExpr2)expr).getLeft();
}
@Override
public SqlExpr getArg2(SqlExpr expr) {
return ((SqlExpr2)expr).getRight();
}
@Override
public SqlExpr createLogicalAnd(SqlExpr a, SqlExpr b) {
return S_LogicalAnd.create(a, b);
}
@Override
public SqlExpr createLogicalOr(SqlExpr a, SqlExpr b) {
return S_LogicalOr.create(a, b);
}
@Override
public SqlExpr createLogicalNot(SqlExpr expr) {
return S_LogicalNot.create(expr);
}
}