@Override public BooleanExpr get() { if (children.isEmpty()) { throw new IllegalStateException("A conjunction must have at least one child"); } BooleanExpr firstChild = children.get(0).get(); if (children.size() == 1) { return firstChild; } AndExpr andExpr = new AndExpr(firstChild); for (int i = 1; i < children.size(); i++) { BooleanExpr child = children.get(i).get(); andExpr.getChildren().add(child); } return andExpr; } }
@Override public BooleanExpr get() { if (children.isEmpty()) { throw new IllegalStateException("A disjunction must have at least one child"); } BooleanExpr firstChild = children.get(0).get(); if (children.size() == 1) { return firstChild; } OrExpr orExpr = new OrExpr(firstChild); for (int i = 1; i < children.size(); i++) { BooleanExpr child = children.get(i).get(); orExpr.getChildren().add(child); } return orExpr; } }
public BooleanExpr build() { return stack.getFirst().get(); }
@Override public BooleanExpr get() { return child == null ? null : child.get(); } }
@Override public BooleanExpr get() { return new FullTextOccurExpr(getChild().get(), occur); } }
@Override public BooleanExpr get() { return new FullTextBoostExpr(getChild().get(), boost); } }
@Override public BooleanExpr get() { return new NotExpr(getChild().get()); } }