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

  • Constructor Details

    • AbstractListValueCondition

      protected AbstractListValueCondition(Collection<T> values)
  • 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.
    • 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, Function<Collection<T>,S> constructor, S self, Supplier<S> emptySupplier)
    • mapSupport

      protected <R, S extends AbstractListValueCondition<R>> S mapSupport(Function<? super T,? extends R> mapper, Function<Collection<R>,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.
    • renderCondition

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