Class AbstractListValueCondition<T>

java.lang.Object
org.mybatis.dynamic.sql.AbstractListValueCondition<T>
All Implemented Interfaces:
VisitableCondition<T>
Direct Known Subclasses:
IsIn, IsInCaseInsensitive, IsNotIn, IsNotInCaseInsensitive

public abstract class AbstractListValueCondition<T> extends Object implements VisitableCondition<T>
  • Field Details

    • values

      protected final Collection<T> values
    • emptyCallback

      @Deprecated protected final Callback emptyCallback
      Deprecated.
      in favor of the statement configuration functions
      Callback to execute when the list is empty.
  • Constructor Details

    • AbstractListValueCondition

      protected AbstractListValueCondition(Collection<T> values)
    • AbstractListValueCondition

      @Deprecated protected AbstractListValueCondition(Collection<T> values, Callback emptyCallback)
      Deprecated.
      in favor of the statement configuration functions
      Construct a new condition with a callback.
      Parameters:
      values - values
      emptyCallback - empty callback
  • Method Details

    • mapValues

      public final <R> Stream<R> mapValues(Function<T,R> mapper)
    • shouldRender

      public boolean shouldRender()
      Description copied from interface: VisitableCondition
      Subclasses can override this to inform the renderer if the condition should not be included in the rendered SQL. For example, IsEqualWhenPresent will not render if the value is null.
      Specified by:
      shouldRender in interface VisitableCondition<T>
      Returns:
      true if the condition should render.
    • renderingSkipped

      public void renderingSkipped()
      Description copied from interface: VisitableCondition
      This method will be called during rendering when VisitableCondition.shouldRender() returns false.
      Specified by:
      renderingSkipped in interface VisitableCondition<T>
    • accept

      public <R> R accept(ConditionVisitor<T,R> visitor)
      Specified by:
      accept in interface VisitableCondition<T>
    • filterSupport

      protected <S extends AbstractListValueCondition<T>> S filterSupport(Predicate<? super T> predicate, BiFunction<Collection<T>,Callback,S> constructor, S self, Supplier<S> emptySupplier)
    • mapSupport

      protected <R, S extends AbstractListValueCondition<R>> S mapSupport(Function<? super T,? extends R> mapper, BiFunction<Collection<R>,Callback,S> constructor, Supplier<S> emptySupplier)
    • filter

      public abstract AbstractListValueCondition<T> filter(Predicate<? super T> predicate)
      If renderable, apply the predicate to each value in the list and return a new condition with the filtered values. Else returns a condition that will not render (this). If all values are filtered out of the value list, then the condition will not render.
      Parameters:
      predicate - predicate applied to the values, if renderable
      Returns:
      a new condition with filtered values if renderable, otherwise a condition that will not render.
    • withListEmptyCallback

      @Deprecated public abstract AbstractListValueCondition<T> withListEmptyCallback(Callback callback)
      Deprecated.
      in favor of the statement configuration functions
      Specifies a callback function to be called if the value list is empty when rendered.
      Parameters:
      callback - a callback function - typically throws an exception to block the statement from executing
      Returns:
      this condition
    • renderCondition

      public abstract String renderCondition(String columnName, Stream<String> placeholders)