package org.infinispan.objectfilter.impl.syntax;
import java.util.List;
/**
* @author anistor@redhat.com
* @since 7.0
*/
public final class OrExpr extends BooleanOperatorExpr {
public OrExpr(BooleanExpr... children) {
super(children);
}
public OrExpr(List<BooleanExpr> children) {
super(children);
}
@Override
public <T> T acceptVisitor(Visitor<?, ?> visitor) {
return (T) visitor.visit(this);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("OR(");
boolean isFirst = true;
for (BooleanExpr c : children) {
if (isFirst) {
isFirst = false;
} else {
sb.append(", ");
}
sb.append(c);
}
sb.append(')');
return sb.toString();
}
@Override
public String toQueryString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < children.size(); i++) {
if (i != 0) {
sb.append(" OR ");
}
sb.append('(').append(children.get(i).toQueryString()).append(')');
}
return sb.toString();
}
}