org.redkale.source

## 类 FilterNode

- java.lang.Object
- - org.redkale.source.FilterNode

- 直接已知子类:
    FilterJoinNode

      public class FilterNode
      extends java.lang.Object

  注意：
  column的值以#开头的视为虚拟字段，不在过滤范围内
  在调用 createSQLExpress 之前必须先调用 createSQLJoin
  在调用 createPredicate 之前必须先调用 isCacheUseable 详情见: https://redkale.org

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `protected java.lang.String` | `column`
    `protected FilterExpress` | `express`
    `protected boolean` | `itemand`
    `protected FilterNode[]` | `nodes`
    `protected boolean` | `or`
    `protected java.io.Serializable` | `value`

  - ### 构造器概要

    构造器
    限定符 | 构造器和说明
    --- | ---
    `` | `FilterNode()`
    `protected` | `FilterNode(java.lang.String col, FilterExpress exp, boolean itemand, java.io.Serializable val)`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `FilterNode` | `and(FilterNode node)`
    `FilterNode` | `and(java.lang.String column, FilterExpress express, boolean itemand, java.io.Serializable value)`
    `FilterNode` | `and(java.lang.String column, FilterExpress express, java.io.Serializable value)`
    `FilterNode` | `and(java.lang.String column, java.io.Serializable value)`
    `protected FilterNode` | `any(FilterNode node, boolean signor)`
    `static FilterNode` | `create(java.lang.String column, FilterExpress express, boolean itemand, java.io.Serializable value)`
    `static FilterNode` | `create(java.lang.String column, FilterExpress express, java.io.Serializable value)`
    `static FilterNode` | `create(java.lang.String column, java.io.Serializable value)`
    `protected <T> java.util.function.Predicate<T>` | `createElementPredicate(EntityCache<T> cache, boolean join)`
    `protected <T> java.util.function.Predicate<T>` | `createElementPredicate(EntityCache<T> cache, boolean join, Attribute<T,java.io.Serializable> attr)`
    `protected <T> java.util.function.Predicate<T>` | `createElementPredicate(EntityCache<T> cache, boolean join, Attribute<T,java.io.Serializable> attr, java.lang.Object val0)`
    `protected <T> java.lang.CharSequence` | `createElementSQLExpress(EntityInfo<T> info, java.lang.String talis)`
    `protected <T,E> java.util.function.Predicate<T>` | `createPredicate(EntityCache<T> cache)`
    `protected <T> java.lang.CharSequence` | `createSQLExpress(EntityInfo<T> info, java.util.Map<java.lang.Class,java.lang.String> joinTabalis)` 该方法需要重载
    `protected <T> java.lang.CharSequence` | `createSQLJoin(java.util.function.Function<java.lang.Class,EntityInfo> func, java.util.Map<java.lang.Class,java.lang.String> joinTabalis, EntityInfo<T> info)` 该方法需要重载
    `int` | `findIntValue(java.lang.String col, int defValue)`
    `long` | `findLongValue(java.lang.String col, long defValue)`
    `java.lang.String` | `findStringValue(java.lang.String col)`
    `java.io.Serializable` | `findValue(java.lang.String col)`
    `protected static java.lang.CharSequence` | `formatToString(java.lang.Object value)`
    `java.lang.String` | `getColumn()`
    `FilterExpress` | `getExpress()`
    `protected java.util.Map<java.lang.Class,java.lang.String>` | `getJoinTabalis()`
    `FilterNode[]` | `getNodes()`
    `java.io.Serializable` | `getValue()`
    `protected boolean` | `isCacheUseable(java.util.function.Function<java.lang.Class,EntityInfo> entityApplyer)` 该方法需要重载
    `boolean` | `isItemand()`
    `protected boolean` | `isjoin()` 该方法需要重载
    `boolean` | `isOr()`
    `FilterNode` | `or(FilterNode node)`
    `FilterNode` | `or(java.lang.String column, FilterExpress express, boolean itemand, java.io.Serializable value)`
    `FilterNode` | `or(java.lang.String column, FilterExpress express, java.io.Serializable value)`
    `FilterNode` | `or(java.lang.String column, java.io.Serializable value)`
    `protected void` | `putJoinTabalis(java.util.Map<java.lang.Class,java.lang.String> map)`
    `void` | `setColumn(java.lang.String column)`
    `void` | `setExpress(FilterExpress express)`
    `void` | `setItemand(boolean itemand)`
    `void` | `setNodes(FilterNode[] nodes)`
    `void` | `setOr(boolean or)`
    `void` | `setValue(java.io.Serializable value)`
    `protected java.lang.StringBuilder` | `toElementString(java.lang.String prefix)`
    `protected java.lang.StringBuilder` | `toElementString(java.lang.String prefix, java.lang.Object ev)`
    `java.lang.String` | `toString()`
    `protected java.lang.StringBuilder` | `toString(java.lang.String prefix)`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### 字段详细资料

    - #### column

          protected java.lang.String column

    - #### express

          protected FilterExpress express

    - #### value

          protected java.io.Serializable value

    - #### itemand

          protected boolean itemand

    - #### or

          protected boolean or

    - #### nodes

          protected FilterNode[] nodes

  - ### 构造器详细资料

    - #### FilterNode

          public FilterNode()

    - #### FilterNode

          protected FilterNode(java.lang.String col,
                               FilterExpress exp,
                               boolean itemand,
                               java.io.Serializable val)

  - ### 方法详细资料

    - #### findLongValue

          public long findLongValue(java.lang.String col,
                                    long defValue)

    - #### findIntValue

          public int findIntValue(java.lang.String col,
                                  int defValue)

    - #### findStringValue

          public java.lang.String findStringValue(java.lang.String col)

    - #### findValue

          public java.io.Serializable findValue(java.lang.String col)

    - #### and

          public final FilterNode and(FilterNode node)

    - #### and

          public final FilterNode and(java.lang.String column,
                                      java.io.Serializable value)

    - #### and

          public final FilterNode and(java.lang.String column,
                                      FilterExpress express,
                                      java.io.Serializable value)

    - #### and

          public final FilterNode and(java.lang.String column,
                                      FilterExpress express,
                                      boolean itemand,
                                      java.io.Serializable value)

    - #### or

          public final FilterNode or(FilterNode node)

    - #### or

          public final FilterNode or(java.lang.String column,
                                     java.io.Serializable value)

    - #### or

          public final FilterNode or(java.lang.String column,
                                     FilterExpress express,
                                     java.io.Serializable value)

    - #### or

          public final FilterNode or(java.lang.String column,
                                     FilterExpress express,
                                     boolean itemand,
                                     java.io.Serializable value)

    - #### any

          protected FilterNode any(FilterNode node,
                                   boolean signor)

    - #### createSQLJoin

          protected <T> java.lang.CharSequence createSQLJoin(java.util.function.Function<java.lang.Class,EntityInfo> func,
                                                             java.util.Map<java.lang.Class,java.lang.String> joinTabalis,
                                                             EntityInfo<T> info)

      该方法需要重载
      类型参数:
        `T` - Entity类的泛型
      参数:
        `func` - EntityInfo的加载器
        `joinTabalis` - 关联表集合
        `info` - Entity类的EntityInfo
      返回:
        SQL的join语句 不存在返回null

    - #### isjoin

          protected boolean isjoin()

      该方法需要重载
      返回:
        是否存在关联表

    - #### getJoinTabalis

          protected final java.util.Map<java.lang.Class,java.lang.String> getJoinTabalis()

    - #### putJoinTabalis

          protected void putJoinTabalis(java.util.Map<java.lang.Class,java.lang.String> map)

    - #### isCacheUseable

          protected boolean isCacheUseable(java.util.function.Function<java.lang.Class,EntityInfo> entityApplyer)

      该方法需要重载
      参数:
        `entityApplyer` - EntityInfo的加载器
      返回:
        是否可以使用缓存

    - #### createSQLExpress

          protected <T> java.lang.CharSequence createSQLExpress(EntityInfo<T> info,
                                                                java.util.Map<java.lang.Class,java.lang.String> joinTabalis)

      该方法需要重载
      类型参数:
        `T` - Entity类的泛型
      参数:
        `joinTabalis` - 关联表的集合
        `info` - EntityInfo
      返回:
        JOIN的SQL语句

    - #### create

          public static FilterNode create(java.lang.String column,
                                          java.io.Serializable value)

    - #### create

          public static FilterNode create(java.lang.String column,
                                          FilterExpress express,
                                          java.io.Serializable value)

    - #### create

          public static FilterNode create(java.lang.String column,
                                          FilterExpress express,
                                          boolean itemand,
                                          java.io.Serializable value)

    - #### createElementSQLExpress

          protected final <T> java.lang.CharSequence createElementSQLExpress(EntityInfo<T> info,
                                                                             java.lang.String talis)

    - #### createPredicate

          protected <T,E> java.util.function.Predicate<T> createPredicate(EntityCache<T> cache)

    - #### createElementPredicate

          protected final <T> java.util.function.Predicate<T> createElementPredicate(EntityCache<T> cache,
                                                                                     boolean join)

    - #### createElementPredicate

          protected final <T> java.util.function.Predicate<T> createElementPredicate(EntityCache<T> cache,
                                                                                     boolean join,
                                                                                     Attribute<T,java.io.Serializable> attr)

    - #### createElementPredicate

          protected final <T> java.util.function.Predicate<T> createElementPredicate(EntityCache<T> cache,
                                                                                     boolean join,
                                                                                     Attribute<T,java.io.Serializable> attr,
                                                                                     java.lang.Object val0)

    - #### toString

          public java.lang.String toString()

      覆盖:
        `toString` 在类中 `java.lang.Object`

    - #### toString

          protected java.lang.StringBuilder toString(java.lang.String prefix)

    - #### toElementString

          protected final java.lang.StringBuilder toElementString(java.lang.String prefix)

    - #### toElementString

          protected final java.lang.StringBuilder toElementString(java.lang.String prefix,
                                                                  java.lang.Object ev)

    - #### formatToString

          protected static java.lang.CharSequence formatToString(java.lang.Object value)

    - #### getValue

          public final java.io.Serializable getValue()

    - #### setValue

          public final void setValue(java.io.Serializable value)

    - #### isOr

          public final boolean isOr()

    - #### setOr

          public final void setOr(boolean or)

    - #### getColumn

          public final java.lang.String getColumn()

    - #### setColumn

          public final void setColumn(java.lang.String column)

    - #### getExpress

          public final FilterExpress getExpress()

    - #### setExpress

          public final void setExpress(FilterExpress express)

    - #### isItemand

          public final boolean isItemand()

    - #### setItemand

          public final void setItemand(boolean itemand)

    - #### getNodes

          public final FilterNode[] getNodes()

    - #### setNodes

          public final void setNodes(FilterNode[] nodes)