package org.infinispan.objectfilter.impl.syntax; /** * Checks if there are any full-text predicates in a query. * * @author anistor@redhat.com * @since 9.0 */ public final class FullTextVisitor implements Visitor<Boolean, Boolean> { public static final FullTextVisitor INSTANCE = new FullTextVisitor(); @Override public Boolean visit(FullTextOccurExpr fullTextOccurExpr) { return Boolean.TRUE; } @Override public Boolean visit(FullTextBoostExpr fullTextBoostExpr) { return Boolean.TRUE; } @Override public Boolean visit(FullTextTermExpr fullTextTermExpr) { return Boolean.TRUE; } @Override public Boolean visit(FullTextRegexpExpr fullTextRegexpExpr) { return Boolean.TRUE; } @Override public Boolean visit(FullTextRangeExpr fullTextRangeExpr) { return Boolean.TRUE; } @Override public Boolean visit(NotExpr notExpr) { return notExpr.getChild().acceptVisitor(this); } @Override public Boolean visit(OrExpr orExpr) { for (BooleanExpr c : orExpr.getChildren()) { if (c.acceptVisitor(this)) { return Boolean.TRUE; } } return Boolean.FALSE; } @Override public Boolean visit(AndExpr andExpr) { for (BooleanExpr c : andExpr.getChildren()) { if (c.acceptVisitor(this)) { return Boolean.TRUE; } } return Boolean.FALSE; } @Override public Boolean visit(ConstantBooleanExpr constantBooleanExpr) { return Boolean.FALSE; } @Override public Boolean visit(IsNullExpr isNullExpr) { return isNullExpr.getChild().acceptVisitor(this); } @Override public Boolean visit(ComparisonExpr comparisonExpr) { return Boolean.FALSE; } @Override public Boolean visit(BetweenExpr betweenExpr) { return Boolean.FALSE; } @Override public Boolean visit(LikeExpr likeExpr) { return Boolean.FALSE; } @Override public Boolean visit(ConstantValueExpr constantValueExpr) { return Boolean.FALSE; } @Override public Boolean visit(PropertyValueExpr propertyValueExpr) { return Boolean.FALSE; } @Override public Boolean visit(AggregationExpr aggregationExpr) { return Boolean.FALSE; } }