org.apache.lucene.index

## Class SortFieldProvider

- java.lang.Object
- - org.apache.lucene.index.SortFieldProvider

- All Implemented Interfaces:
    NamedSPILoader.NamedSPI
  Direct Known Subclasses:
    SortedNumericSortField.Provider, SortedSetSortField.Provider, SortField.Provider

      public abstract class SortFieldProvider
      extends Object
      implements NamedSPILoader.NamedSPI

  Reads/Writes a named SortField from a segment info file, used to record index sorts

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `name` The name this SortFieldProvider is registered under

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `SortFieldProvider(String name)` Creates a new SortFieldProvider.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Set<String>` | `availableSortFieldProviders()` Lists all available SortFieldProviders
    `static SortFieldProvider` | `forName(String name)` Looks up a SortFieldProvider by name
    `String` | `getName()`
    `abstract SortField` | `readSortField(DataInput in)` Reads a SortField from serialized bytes
    `static void` | `reloadSortFieldProviders(ClassLoader classLoader)` Reloads the SortFieldProvider list from the given `ClassLoader`.
    `static void` | `write(SortField sf, DataOutput output)` Writes a SortField to a DataOutput
    `abstract void` | `writeSortField(SortField sf, DataOutput out)` Writes a SortField to a DataOutput This is used to record index sort information in segment headers

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

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

- - ### Field Detail

    - #### name

          protected final String name

      The name this SortFieldProvider is registered under

  - ### Constructor Detail

    - #### SortFieldProvider

          protected SortFieldProvider(String name)

      Creates a new SortFieldProvider.

      The provided name will be written into the index segment: in order to for the segment to be read this class should be registered with Java's SPI mechanism (registered in META-INF/ of your jar file, etc).

      Parameters:
        `name` - must be all ascii alphanumeric, and less than 128 characters in length.

  - ### Method Detail

    - #### forName

          public static SortFieldProvider forName(String name)

      Looks up a SortFieldProvider by name

    - #### availableSortFieldProviders

          public static Set<String> availableSortFieldProviders()

      Lists all available SortFieldProviders

    - #### reloadSortFieldProviders

          public static void reloadSortFieldProviders(ClassLoader classLoader)

      Reloads the SortFieldProvider list from the given `ClassLoader`. Changes to the list are visible after the method ends, all iterators (`availableSortFieldProviders()` ()},...) stay consistent.

      NOTE: Only new SortFieldProviders are added, existing ones are never removed or replaced.

      This method is expensive and should only be called for discovery of new SortFieldProviders on the given classpath/classloader!

    - #### write

          public static void write(SortField sf,
                                   DataOutput output)
                            throws IOException

      Writes a SortField to a DataOutput
      Throws:
        `IOException`

    - #### getName

          public String getName()

      Specified by:
        `getName` in interface `NamedSPILoader.NamedSPI`

    - #### readSortField

          public abstract SortField readSortField(DataInput in)
                                           throws IOException

      Reads a SortField from serialized bytes
      Throws:
        `IOException`

    - #### writeSortField

          public abstract void writeSortField(SortField sf,
                                              DataOutput out)
                                       throws IOException

      Writes a SortField to a DataOutput This is used to record index sort information in segment headers
      Throws:
        `IOException`

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