@Override
 public Matcher visit(BinaryLogicOperator condition) {
   Matcher leftMatcher = condition.getLeft().accept(this);
   Matcher rightMatcher = condition.getRight().accept(this);
   return new BinaryMatcher(leftMatcher, condition.getPredicate(), rightMatcher);
 }