package org.infinispan.objectfilter.impl.syntax; /** * Visitor interface for expressions. * * @param <BE> is the return type when visiting a boolean expression (an expression that produces a {@link Boolean}) * @param <VE> is the return type when visiting a value expression (an expression that produces an arbitrary {@link * Object}) * @author anistor@redhat.com * @since 7.0 */ public interface Visitor<BE, VE> { BE visit(FullTextOccurExpr fullTextOccurExpr); BE visit(FullTextBoostExpr fullTextBoostExpr); BE visit(FullTextTermExpr fullTextTermExpr); BE visit(FullTextRegexpExpr fullTextRegexpExpr); BE visit(FullTextRangeExpr fullTextRangeExpr); BE visit(NotExpr notExpr); BE visit(OrExpr orExpr); BE visit(AndExpr andExpr); BE visit(ConstantBooleanExpr constantBooleanExpr); BE visit(IsNullExpr isNullExpr); BE visit(ComparisonExpr comparisonExpr); BE visit(BetweenExpr betweenExpr); BE visit(LikeExpr likeExpr); VE visit(ConstantValueExpr constantValueExpr); VE visit(PropertyValueExpr propertyValueExpr); VE visit(AggregationExpr aggregationExpr); }