org.apache.lucene.queries.function.valuesource

## Class MultiFunction

- java.lang.Object
- - org.apache.lucene.queries.function.ValueSource
  - - org.apache.lucene.queries.function.valuesource.MultiFunction

- Direct Known Subclasses:
    DefFunction

      public abstract class MultiFunction
      extends ValueSource

  Abstract parent class for `ValueSource` implementations that wrap multiple ValueSources and apply their own logic.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `MultiFunction.Values`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected List<ValueSource>` | `sources`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MultiFunction(List<ValueSource> sources)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `allExists(int doc, FunctionValues[] values)` Helper utility for `FunctionValues`
    `static boolean` | `allExists(int doc, FunctionValues values1, FunctionValues values2)` Equivalent to the `FunctionValues[]` method with the same name, but optimized for dealing with exactly 2 arguments.
    `static boolean` | `anyExists(int doc, FunctionValues[] values)` Helper utility for `FunctionValues`
    `static boolean` | `anyExists(int doc, FunctionValues values1, FunctionValues values2)` Equivalent to the `FunctionValues[]` method with the same name, but optimized for dealing with exactly 2 arguments.
    `void` | `createWeight(Map context, IndexSearcher searcher)` Implementations should propagate createWeight to sub-ValueSources which can optionally store weight info in the context.
    `String` | `description()` description of field, used in explain()
    `static String` | `description(String name, List<ValueSource> sources)`
    `boolean` | `equals(Object o)`
    `int` | `hashCode()`
    `protected abstract String` | `name()`
    `static String` | `toString(String name, FunctionValues[] valsArr, int doc)`
    `static FunctionValues[]` | `valsArr(List<ValueSource> sources, Map fcontext, LeafReaderContext readerContext)`

    - ### Methods inherited from class org.apache.lucene.queries.function.ValueSource

      `asDoubleValuesSource, asLongValuesSource, fromDoubleValuesSource, getSortField, getValues, newContext, toString`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### sources

          protected final List<ValueSource> sources

  - ### Constructor Detail

    - #### MultiFunction

          public MultiFunction(List<ValueSource> sources)

  - ### Method Detail

    - #### name

          protected abstract String name()

    - #### description

          public String description()

      Description copied from class: `ValueSource`
      description of field, used in explain()
      Specified by:
        `description` in class `ValueSource`

    - #### allExists

          public static boolean allExists(int doc,
                                          FunctionValues[] values)
                                   throws IOException

      Helper utility for `FunctionValues`
      Returns:
        true if all of the specified `values` `FunctionValues.exists(int)` for the specified doc, else false.
      Throws:
        `IOException`

    - #### anyExists

          public static boolean anyExists(int doc,
                                          FunctionValues[] values)
                                   throws IOException

      Helper utility for `FunctionValues`
      Returns:
        true if any of the specified `values` `FunctionValues.exists(int)` for the specified doc, else false.
      Throws:
        `IOException`

    - #### allExists

          public static boolean allExists(int doc,
                                          FunctionValues values1,
                                          FunctionValues values2)
                                   throws IOException

      Equivalent to the `FunctionValues[]` method with the same name, but optimized for dealing with exactly 2 arguments.
      Returns:
        true if both of the specified `values` `FunctionValues.exists(int)` for the specified doc, else false.
      Throws:
        `IOException`
      See Also:
        `anyExists(int,FunctionValues[])`

    - #### anyExists

          public static boolean anyExists(int doc,
                                          FunctionValues values1,
                                          FunctionValues values2)
                                   throws IOException

      Equivalent to the `FunctionValues[]` method with the same name, but optimized for dealing with exactly 2 arguments.
      Returns:
        true if either of the specified `values` `FunctionValues.exists(int)` for the specified doc, else false.
      Throws:
        `IOException`
      See Also:
        `anyExists(int,FunctionValues[])`

    - #### description

          public static String description(String name,
                                           List<ValueSource> sources)

    - #### valsArr

          public static FunctionValues[] valsArr(List<ValueSource> sources,
                                                 Map fcontext,
                                                 LeafReaderContext readerContext)
                                          throws IOException

      Throws:
        `IOException`

    - #### toString

          public static String toString(String name,
                                        FunctionValues[] valsArr,
                                        int doc)
                                 throws IOException

      Throws:
        `IOException`

    - #### createWeight

          public void createWeight(Map context,
                                   IndexSearcher searcher)
                            throws IOException

      Description copied from class: `ValueSource`
      Implementations should propagate createWeight to sub-ValueSources which can optionally store weight info in the context. The context object will be passed to getValues() where this info can be retrieved.
      Overrides:
        `createWeight` in class `ValueSource`
      Throws:
        `IOException`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `ValueSource`

    - #### equals

          public boolean equals(Object o)

      Specified by:
        `equals` in class `ValueSource`

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.