package hdgl.db.query.parser;
import java.util.ArrayList;
import hdgl.db.query.expression.BadExpressionException;
import hdgl.db.query.expression.Condition;
import hdgl.db.query.expression.Order;
public class Util {
public static OrderAndConditions combineOrderAndConditions(Iterable<OrderAndCondition> list) throws BadExpressionException{
Order order = null;
ArrayList<Condition> conditions = new ArrayList<Condition>();
for(OrderAndCondition e:list){
if(e.getOrder()!=null){
if(order!=null){
throw new BadExpressionException();
}
order = e.getOrder();
}
if(e.condition!=null){
conditions.add(e.getCondition());
}
}
return new OrderAndConditions(order, conditions.toArray(new Condition[0]));
}
public static class OrderAndConditions{
Order order;
Condition[] conditions;
public OrderAndConditions(Order order, Condition[] conditions) {
super();
this.order = order;
this.conditions = conditions;
}
public Order getOrder() {
return order;
}
public void setOrder(Order order) {
this.order = order;
}
public Condition[] getConditions() {
return conditions;
}
public void setConditions(Condition[] conditions) {
this.conditions = conditions;
}
}
public static class OrderAndCondition{
Order order;
Condition condition;
public OrderAndCondition(Order order, Condition condition) {
super();
this.order = order;
this.condition = condition;
}
public Order getOrder() {
return order;
}
public void setOrder(Order order) {
this.order = order;
}
public Condition getCondition() {
return condition;
}
public void setCondition(Condition condition) {
this.condition = condition;
}
}
}