@Nullable @Override public Boolean visit(OrCondition condition, @Nullable Void context) { return visitAll(condition.getConditions()); }
@Override public Boolean visit(OrCondition condition, @Nullable Object json) { for (Condition clause : condition.getConditions()) { if (clause.visit(this, json)) { return true; } } return false; // Note: if the condition lists is empty then OR returns false }
@Nullable @Override public Void visit(OrCondition condition, @Nullable Void context) { condition.getConditions().forEach(c -> c.visit(this, null)); return null; }
@Nullable @Override public Void visit(OrCondition condition, @Nullable String context) { for (Condition c : condition.getConditions()) { c.visit(this, null); } return null; }
@Nullable @Override public Boolean visit(OrCondition condition, @Nullable String context) { for (Condition c : condition.getConditions()) { if (c.visit(this, context)) { return true; } } return false; }
@Nullable @Override public Condition visit(OrCondition condition, Void context) { return inverseConditions(condition.getConditions(), false); }
@Override public Boolean visit(OrCondition left, Condition right) { // Example: or(gt("e"),in("a","c")) subset? is(string) for (Condition orCondition : left.getConditions()) { if (!checkIsSubset(orCondition, right)) { return false; } } return true; }
@Override public final Boolean visit(OrCondition right, Void context) { // left is a subset of right only if left is a subset of at least one "or" condition for (Condition orCondition : right.getConditions()) { if (orCondition.visit(this, context)) { return true; } } return false; }
public Void visit(OrCondition condition, Void context) { return visitAll(condition.getConditions()); }
@Override public boolean equals(Object o) { return this == o || (o instanceof OrCondition) && conditionsEqual(((OrCondition) o).getConditions()); }
public Void visit(OrCondition condition, Void context) { return visitAll(condition.getConditions()); }
protected static void appendSubCondition(Appendable buf, Condition condition) throws IOException { // The syntax allows a comma-separated list of conditions that are implicitly wrapped in an OrCondition. // If _condition is an InCondition or OrCondition we can print them without the "in(...)" and "or(...)" // wrappers to result in a cleaner string format that the parser can parse back into InCondition/OrCondition. if (condition instanceof InCondition) { Set<Object> values = ((InCondition) condition).getValues(); Joiner.on(',').appendTo(buf, OrderedJson.orderedStrings(values)); } else if (condition instanceof OrCondition) { Collection<Condition> conditions = ((OrCondition) condition).getConditions(); String sep = ""; for (Condition orCondition : conditions) { buf.append(sep); orCondition.appendTo(buf); sep = ","; } } else { condition.appendTo(buf); } } }
orAny(((OrCondition) condition).getConditions());