Package org.apache.lucene.analysis
Class AbstractAnalysisFactory
- java.lang.Object
-
- org.apache.lucene.analysis.AbstractAnalysisFactory
-
- Direct Known Subclasses:
CharFilterFactory
,TokenFilterFactory
,TokenizerFactory
public abstract class AbstractAnalysisFactory extends java.lang.Object
Abstract parent class for analysis factoriesTokenizerFactory
,TokenFilterFactory
andCharFilterFactory
.The typical lifecycle for a factory consumer is:
- Create factory via its constructor (or via XXXFactory.forName)
- (Optional) If the factory uses resources such as files,
ResourceLoaderAware.inform(ResourceLoader)
is called to initialize those resources. - Consumer calls create() to obtain instances.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
CLASS_NAME
private boolean
isExplicitLuceneMatchVersion
whether the luceneMatchVersion arg is explicitly specified in the serialized schemaprivate static java.util.regex.Pattern
ITEM_PATTERN
static java.lang.String
LUCENE_MATCH_VERSION_PARAM
protected Version
luceneMatchVersion
the luceneVersion argprivate java.util.Map<java.lang.String,java.lang.String>
originalArgs
The original args, before any processingprivate static java.lang.String
SPI_NAME
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractAnalysisFactory()
This default ctor is required to be implemented by all subclasses because of service loader (SPI) specification, but it is never called by Lucene.protected
AbstractAnalysisFactory(java.util.Map<java.lang.String,java.lang.String> args)
Initialize this factory via a set of key-value pairs.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static java.lang.RuntimeException
defaultCtorException()
Helper method to be called from mandatory default constructor of all subclasses to makeServiceLoader
happy.java.lang.String
get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
java.lang.String
get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.lang.String defaultVal)
java.lang.String
get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues)
java.lang.String
get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues, java.lang.String defaultVal)
java.lang.String
get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues, java.lang.String defaultVal, boolean caseSensitive)
protected boolean
getBoolean(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, boolean defaultVal)
char
getChar(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, char defaultValue)
java.lang.String
getClassArg()
protected float
getFloat(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, float defaultVal)
protected int
getInt(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, int defaultVal)
protected java.util.List<java.lang.String>
getLines(ResourceLoader loader, java.lang.String resource)
Returns the resource's lines (with content treated as UTF-8)Version
getLuceneMatchVersion()
java.util.Map<java.lang.String,java.lang.String>
getOriginalArgs()
protected java.util.regex.Pattern
getPattern(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
Compiles a pattern for the value of the specified argument keyname
java.util.Set<java.lang.String>
getSet(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
Returns whitespace- and/or comma-separated set of values, or null if none are foundprotected CharArraySet
getSnowballWordSet(ResourceLoader loader, java.lang.String wordFiles, boolean ignoreCase)
same asgetWordSet(ResourceLoader, String, boolean)
, except the input is in snowball format.protected CharArraySet
getWordSet(ResourceLoader loader, java.lang.String wordFiles, boolean ignoreCase)
Returns asCharArraySet
from wordFiles, which can be a comma-separated list of filenamesboolean
isExplicitLuceneMatchVersion()
java.lang.String
require(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
java.lang.String
require(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues)
java.lang.String
require(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues, boolean caseSensitive)
protected boolean
requireBoolean(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
char
requireChar(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
protected float
requireFloat(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
protected int
requireInt(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
void
setExplicitLuceneMatchVersion(boolean isExplicitLuceneMatchVersion)
protected java.util.List<java.lang.String>
splitAt(char separator, java.lang.String list)
Splits a list separated by zero or more given separator characters.protected java.util.List<java.lang.String>
splitFileNames(java.lang.String fileNames)
Splits file names separated by comma character.
-
-
-
Field Detail
-
LUCENE_MATCH_VERSION_PARAM
public static final java.lang.String LUCENE_MATCH_VERSION_PARAM
- See Also:
- Constant Field Values
-
originalArgs
private final java.util.Map<java.lang.String,java.lang.String> originalArgs
The original args, before any processing
-
luceneMatchVersion
protected final Version luceneMatchVersion
the luceneVersion arg
-
isExplicitLuceneMatchVersion
private boolean isExplicitLuceneMatchVersion
whether the luceneMatchVersion arg is explicitly specified in the serialized schema
-
ITEM_PATTERN
private static final java.util.regex.Pattern ITEM_PATTERN
-
CLASS_NAME
private static final java.lang.String CLASS_NAME
- See Also:
- Constant Field Values
-
SPI_NAME
private static final java.lang.String SPI_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractAnalysisFactory
protected AbstractAnalysisFactory()
This default ctor is required to be implemented by all subclasses because of service loader (SPI) specification, but it is never called by Lucene.Subclass ctors should call:
throw defaultCtorException();
- Throws:
java.lang.UnsupportedOperationException
- if invoked- See Also:
defaultCtorException()
,AbstractAnalysisFactory(Map)
-
AbstractAnalysisFactory
protected AbstractAnalysisFactory(java.util.Map<java.lang.String,java.lang.String> args)
Initialize this factory via a set of key-value pairs.
-
-
Method Detail
-
defaultCtorException
protected static java.lang.RuntimeException defaultCtorException()
Helper method to be called from mandatory default constructor of all subclasses to makeServiceLoader
happy.Should be used in subclass ctors like:
throw defaultCtorException();
- See Also:
AbstractAnalysisFactory()
-
getOriginalArgs
public final java.util.Map<java.lang.String,java.lang.String> getOriginalArgs()
-
getLuceneMatchVersion
public final Version getLuceneMatchVersion()
-
require
public java.lang.String require(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
-
require
public java.lang.String require(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues)
-
require
public java.lang.String require(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues, boolean caseSensitive)
-
get
public java.lang.String get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
-
get
public java.lang.String get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.lang.String defaultVal)
-
get
public java.lang.String get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues)
-
get
public java.lang.String get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues, java.lang.String defaultVal)
-
get
public java.lang.String get(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, java.util.Collection<java.lang.String> allowedValues, java.lang.String defaultVal, boolean caseSensitive)
-
requireInt
protected final int requireInt(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
-
getInt
protected final int getInt(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, int defaultVal)
-
requireBoolean
protected final boolean requireBoolean(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
-
getBoolean
protected final boolean getBoolean(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, boolean defaultVal)
-
requireFloat
protected final float requireFloat(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
-
getFloat
protected final float getFloat(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, float defaultVal)
-
requireChar
public char requireChar(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
-
getChar
public char getChar(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name, char defaultValue)
-
getSet
public java.util.Set<java.lang.String> getSet(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
Returns whitespace- and/or comma-separated set of values, or null if none are found
-
getPattern
protected final java.util.regex.Pattern getPattern(java.util.Map<java.lang.String,java.lang.String> args, java.lang.String name)
Compiles a pattern for the value of the specified argument keyname
-
getWordSet
protected final CharArraySet getWordSet(ResourceLoader loader, java.lang.String wordFiles, boolean ignoreCase) throws java.io.IOException
Returns asCharArraySet
from wordFiles, which can be a comma-separated list of filenames- Throws:
java.io.IOException
-
getLines
protected final java.util.List<java.lang.String> getLines(ResourceLoader loader, java.lang.String resource) throws java.io.IOException
Returns the resource's lines (with content treated as UTF-8)- Throws:
java.io.IOException
-
getSnowballWordSet
protected final CharArraySet getSnowballWordSet(ResourceLoader loader, java.lang.String wordFiles, boolean ignoreCase) throws java.io.IOException
same asgetWordSet(ResourceLoader, String, boolean)
, except the input is in snowball format.- Throws:
java.io.IOException
-
splitFileNames
protected final java.util.List<java.lang.String> splitFileNames(java.lang.String fileNames)
Splits file names separated by comma character. File names can contain comma characters escaped by backslash '\'- Parameters:
fileNames
- the string containing file names- Returns:
- a list of file names with the escaping backslashed removed
-
splitAt
protected final java.util.List<java.lang.String> splitAt(char separator, java.lang.String list)
Splits a list separated by zero or more given separator characters. List items can contain comma characters escaped by backslash '\'. Whitespace is NOT trimmed from the returned list items.- Parameters:
list
- the string containing the split list items- Returns:
- a list of items with the escaping backslashes removed
-
getClassArg
public java.lang.String getClassArg()
- Returns:
- the string used to specify the concrete class name in a serialized representation: the
class arg. If the concrete class name was not specified via a class arg, returns
getClass().getName()
.
-
isExplicitLuceneMatchVersion
public boolean isExplicitLuceneMatchVersion()
-
setExplicitLuceneMatchVersion
public void setExplicitLuceneMatchVersion(boolean isExplicitLuceneMatchVersion)
-
-