package org.raidenjpa.query.parser;
import java.util.ArrayList;
import java.util.List;
import org.raidenjpa.util.FixMe;
public class LogicExpression {
private List<LogicExpressionElement> elements = new ArrayList<LogicExpressionElement>();
public LogicExpression(QueryWords words) {
while (words.isThereMoreWhereElements()) {
addElement(words);
}
}
public List<LogicExpressionElement> getElements() {
return elements;
}
void addElementExpression(QueryWords words) {
getElements().add(new Condition(words));
}
void addElementLogicOperator(QueryWords words) {
getElements().add(new LogicOperator(words.next()));
}
@FixMe("Make it be the same to with")
void addElement(QueryWords words) {
if (words.isLogicOperator()) {
addElementLogicOperator(words);
} else {
addElementExpression(words);
}
}
}