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 abstract class SqlExprN
extends SqlExprFunctionBase
{
protected List<SqlExpr> args;
public SqlExprN(TypeToken datatype, String name, List<SqlExpr> exprs) {
super(datatype, name);
this.args = exprs;
}
@Override
public List<SqlExpr> getArgs() {
return args;
}
public SqlExprType getType() {
return SqlExprType.Function;
}
//@Override
@Override
public void asString(IndentedWriter writer) {
writer.print(name);
writeArgs(writer);
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((args == null) ? 0 : args.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
SqlExprN other = (SqlExprN) obj;
if (args == null) {
if (other.args != null)
return false;
} else if (!args.equals(other.args))
return false;
return true;
}
/*
@Override
public String toString() {
return SqlExprBase.asString(this.getClass().getSimpleName(), exprs);
}*/
/*
public static List<String> toSqlStrings(Iterable<SqlExpr> exprs) {
List<String> result = new ArrayList<String>();
for (SqlExpr expr : exprs) {
result.add(expr.asSQL());
}
return result;
}*/
/*
public void visit(SqlExprVisitor visitor) {
// visitor.visit(this) ;
}*/
}