*/
protected Condition visit(BinaryLogicOperator filter, Object extraData) {
// Initialize
//
Condition eCondition = null;
// Get name logic operator
//
String operator = ((String) extraData).toUpperCase();
// Get filter iterator
//
Iterator<Filter> list = filter.getChildren().iterator();
// Is inverse operator?
//
if ("OR".equals(operator)) {
while (list.hasNext()) {
// Build filter recursively and put onto condition stack
//
list.next().accept(this, extraData);
// Initialize?
//
if (eCondition == null) {
eCondition = eConditionStack.pop();
} else {
eCondition = eCondition.OR(eConditionStack.pop());
}
}
} else if ("AND".equals(operator)) {
while (list.hasNext()) {
// Build filter recursively and put onto condition stack
//
list.next().accept(this, extraData);
// Initialize?
//
if (eCondition == null) {
eCondition = eConditionStack.pop();
} else {
eCondition = eCondition.AND(eConditionStack.pop());
}
}
} else {
throw new RuntimeException("Binary logical " + "operator " + operator