Package org.apache.lucene.analysis.util
Class AbstractAnalysisFactory
- java.lang.Object
-
- org.apache.lucene.analysis.util.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 processing
-
Constructor Summary
Constructors Modifier Constructor Description 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 Deprecated Methods Modifier and Type Method Description (package private) static java.lang.String
generateLegacySPIName(java.lang.Class<? extends AbstractAnalysisFactory> service, java.lang.String[] suffixes)
Deprecated.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()
(package private) static java.lang.String
lookupSPIName(java.lang.Class<? extends AbstractAnalysisFactory> service)
Looks up SPI name (static "NAME" field) with appropriate modifiers.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
-
-
Method Detail
-
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)
-
lookupSPIName
static java.lang.String lookupSPIName(java.lang.Class<? extends AbstractAnalysisFactory> service) throws java.lang.NoSuchFieldException, java.lang.IllegalAccessException, java.lang.IllegalStateException
Looks up SPI name (static "NAME" field) with appropriate modifiers. Also it must be a String class and declared in the concrete class.- Returns:
- the SPI name
- Throws:
java.lang.NoSuchFieldException
- - if the "NAME" field is not defined.java.lang.IllegalAccessException
- - if the "NAME" field is inaccessible.java.lang.IllegalStateException
- - if the "NAME" field does not have appropriate modifiers or isn't a String field.
-
generateLegacySPIName
@Deprecated static java.lang.String generateLegacySPIName(java.lang.Class<? extends AbstractAnalysisFactory> service, java.lang.String[] suffixes)
Deprecated.Generate legacy SPI name derived from the class name.- Returns:
- the SPI name
-
-