Class 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.
    • Field Detail

      • sources

        protected final java.util.List<ValueSource> sources
    • Constructor Detail

      • MultiFunction

        public MultiFunction​(java.util.List<ValueSource> sources)
    • Method Detail

      • name

        protected abstract java.lang.String name()
      • description

        public java.lang.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 java.io.IOException
        Helper utility for FunctionValues
        Returns:
        true if all of the specified values FunctionValues.exists(int) for the specified doc, else false.
        Throws:
        java.io.IOException
      • anyExists

        public static boolean anyExists​(int doc,
                                        FunctionValues[] values)
                                 throws java.io.IOException
        Helper utility for FunctionValues
        Returns:
        true if any of the specified values FunctionValues.exists(int) for the specified doc, else false.
        Throws:
        java.io.IOException
      • allExists

        public static boolean allExists​(int doc,
                                        FunctionValues values1,
                                        FunctionValues values2)
                                 throws java.io.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:
        java.io.IOException
        See Also:
        anyExists(int,FunctionValues[])
      • anyExists

        public static boolean anyExists​(int doc,
                                        FunctionValues values1,
                                        FunctionValues values2)
                                 throws java.io.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:
        java.io.IOException
        See Also:
        anyExists(int,FunctionValues[])
      • description

        public static java.lang.String description​(java.lang.String name,
                                                   java.util.List<ValueSource> sources)
      • valsArr

        public static FunctionValues[] valsArr​(java.util.List<ValueSource> sources,
                                               java.util.Map<java.lang.Object,​java.lang.Object> fcontext,
                                               LeafReaderContext readerContext)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • toString

        public static java.lang.String toString​(java.lang.String name,
                                                FunctionValues[] valsArr,
                                                int doc)
                                         throws java.io.IOException
        Throws:
        java.io.IOException
      • createWeight

        public void createWeight​(java.util.Map<java.lang.Object,​java.lang.Object> context,
                                 IndexSearcher searcher)
                          throws java.io.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:
        java.io.IOException
      • equals

        public boolean equals​(java.lang.Object o)
        Specified by:
        equals in class ValueSource