public abstract class SortFieldProvider extends Object implements NamedSPILoader.NamedSPI
Modifier and Type | Field and Description |
---|---|
protected String |
name
The name this SortFieldProvider is registered under
|
Modifier | Constructor and Description |
---|---|
protected |
SortFieldProvider(String name)
Creates a new SortFieldProvider.
|
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
|
protected final String name
protected SortFieldProvider(String name)
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).
name
- must be all ascii alphanumeric, and less than 128 characters in length.public static SortFieldProvider forName(String name)
public static Set<String> availableSortFieldProviders()
public static void reloadSortFieldProviders(ClassLoader classLoader)
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!
public static void write(SortField sf, DataOutput output) throws IOException
IOException
public String getName()
getName
in interface NamedSPILoader.NamedSPI
public abstract SortField readSortField(DataInput in) throws IOException
IOException
public abstract void writeSortField(SortField sf, DataOutput out) throws IOException
IOException
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.