5 public class LogicStatement {
7 public static final Operation AND = new Operation("AND");
8 public static final Operation OR = new Operation("OR");
9 public static final Operation NOT = new Operation("NOT");
11 public static class Operation {
12 private final String name;
13 private Operation(String opname) { name = opname; }
14 public String toString() { return name; }
21 public LogicStatement(Operation op, LogicStatement left, LogicStatement right) {
23 throw new IllegalArgumentException("Must be a AND or OR expression.");
31 public LogicStatement(Operation op, LogicStatement left) {
33 throw new IllegalArgumentException("Must be a NOT expression.");
41 protected LogicStatement() {
47 public Set getRequiredDescriptors() {
48 Set v = left.getRequiredDescriptors();
50 v.addAll(right.getRequiredDescriptors());