package org.aksw.sparqlify.algebra.sql.nodes;
import java.util.List;
import org.aksw.sparqlify.algebra.sql.exprs2.SqlAggFunction;
import org.aksw.sparqlify.algebra.sql.exprs2.SqlExpr;
import org.aksw.sparqlify.core.sql.schema.Schema;
import org.apache.jena.atlas.io.IndentedWriter;
public class SqlOpGroupBy
extends SqlOpBase1
{
private List<SqlExpr> groupByExprs;
private List<SqlAggFunction> aggregators;
/*
public SqlOpGroupBy(Schema schema, SqlOp subOp) {
this(schema, subOp, null);
}
*/
public SqlOpGroupBy(Schema schema, SqlOp subOp, List<SqlExpr> groupByExprs, List<SqlAggFunction> aggregators) {
super(schema, subOp);
this.groupByExprs = groupByExprs;
//this.aggregators = aggregators;
}
public List<SqlExpr> getGroupByExprs() {
return groupByExprs;
}
public List<SqlAggFunction> getAggregators() {
return aggregators;
}
public static SqlOpGroupBy create(SqlOp subOp, List<SqlExpr> groupByExprs, List<SqlAggFunction> aggregators) {
SqlOpGroupBy result = new SqlOpGroupBy(subOp.getSchema(), subOp, groupByExprs, aggregators);
return result;
}
/*
public static SqlOpGroupBy create(SqlOp subOp, List<String> groupByColumns, List<SqlExprAggregator> aggregators) {
SqlOpGroupBy result = new SqlOpGroupBy(subOp.getSchema(), subOp, groupByExprs, aggregators);
return result;
}
*/
@Override
public boolean isEmpty() {
boolean result = subOp.isEmpty();
return result;
}
@Override
public void write(IndentedWriter writer) {
writer.println("SqlOpGroupBy (" + groupByExprs + "," + aggregators);
writer.incIndent();
subOp.write(writer);
writer.decIndent();
writer.print(")");
}
}