package org.quaere.expressions;
import java.util.List;
public class QueryBody implements ExpressionTreeNode {
private final List<QueryBodyClause> clauses;
private final SelectOrGroupClause selectOrGroupClause;
private final QueryContinuation continuation;
public QueryBody(List<QueryBodyClause> clauses, SelectOrGroupClause selectOrGroupClause, QueryContinuation continuation) {
this.clauses = clauses;
this.selectOrGroupClause = selectOrGroupClause;
this.continuation = continuation;
}
public List<QueryBodyClause> getClauses() {
return clauses;
}
public QueryContinuation getContinuation() {
return continuation;
}
public SelectOrGroupClause getSelectOrGroupClause() {
return selectOrGroupClause;
}
public String toString() {
StringBuilder sb=new StringBuilder();
for (QueryBodyClause clause: clauses) {
sb.append(clause.toString());
sb.append(".\n");
}
return sb.toString();
}
// --------------------- Interface ExpressionTreeNode ---------------------
public void accept(ExpressionTreeVisitor visitor) {
visitor.visit(this);
}
public boolean hasContinuation() {
return continuation != null;
}
public boolean hasSelectOrGroupClause() {
return selectOrGroupClause != null;
}
}