Package org.apache.oro.text
Class GenericPatternCache
- java.lang.Object
-
- org.apache.oro.text.GenericPatternCache
-
- All Implemented Interfaces:
PatternCache
- Direct Known Subclasses:
PatternCacheLRU
public abstract class GenericPatternCache extends java.lang.Object implements PatternCache
This is the base class for all cache implementations provided in the org.apache.oro.text package. Although 4 subclasses of GenericPatternCache are provided with this package, users may not derive subclasses from this class. Rather, users should create their own implmentations of thePatternCache
interface.- Since:
- 1.0
- See Also:
PatternCache
,PatternCacheLRU
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Cache
_cache
(package private) PatternCompiler
_compiler
static int
DEFAULT_CAPACITY
The default capacity to be used by the GenericPatternCache subclasses provided with this package.
-
Constructor Summary
Constructors Constructor Description GenericPatternCache(Cache cache, PatternCompiler compiler)
The primary constructor for GenericPatternCache.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) Pattern
addPattern(java.lang.String expression)
Same as callingPattern
addPattern(java.lang.String expression, int options)
Adds a pattern to the cache and returns the compiled pattern.int
capacity()
Returns the maximum number of patterns that can be cached at one time.Pattern
getPattern(java.lang.String expression)
Same as callingPattern
getPattern(java.lang.String expression, int options)
This method fetches a pattern from the cache.int
size()
Returns the number of elements in the cache, not to be confused with thecapacity()
which returns the number of elements that can be held in the cache at one time.
-
-
-
Field Detail
-
_compiler
PatternCompiler _compiler
-
_cache
Cache _cache
-
DEFAULT_CAPACITY
public static final int DEFAULT_CAPACITY
The default capacity to be used by the GenericPatternCache subclasses provided with this package. Its value is 20.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GenericPatternCache
GenericPatternCache(Cache cache, PatternCompiler compiler)
The primary constructor for GenericPatternCache. It has default access so it will only be used within the package. It initializes _cache and _compiler to the arguments provided.- Parameters:
cache
- The cache with which to store patterns.compiler
- The PatternCompiler that should be used to compile patterns.
-
-
Method Detail
-
addPattern
public final Pattern addPattern(java.lang.String expression, int options) throws MalformedPatternException
Adds a pattern to the cache and returns the compiled pattern. This method is in principle almost identical togetPattern()
except for the fact that it throws a MalformedPatternException if an expression cannot be compiled.addPattern() is meant to be used when you expressly intend to add an expression to the cache and is useful for front-loading a cache with expressions before use. If the expression added does not already exist in the cache, it is compiled, added to the cache, and returned. If the compiled expression is already in the cache, it is simply returned.
The expected behavior of this method should be to start replacing patterns in the cache only after the cache has been filled to capacity.
- Specified by:
addPattern
in interfacePatternCache
- Parameters:
expression
- The regular expression to add to the cache.options
- The compilation options to use when compiling the expression.- Returns:
- The Pattern corresponding to the String representation of the regular expression.
- Throws:
MalformedPatternException
- If there is an error in compiling the regular expression.
-
addPattern
final Pattern addPattern(java.lang.String expression) throws MalformedPatternException
Same as callingaddPattern(expression, 0);
- Throws:
MalformedPatternException
- If there is an error in compiling the regular expression.
-
getPattern
public final Pattern getPattern(java.lang.String expression, int options) throws MalformedCachePatternException
This method fetches a pattern from the cache. It is nearly identical toaddPattern()
except that it doesn't throw a MalformedPatternException. If the pattern is not in the cache, it is compiled, placed in the cache, and returned. If the pattern cannot be compiled successfully, it throws a MalformedCachePatternException. Note that this exception is derived from RuntimeException, which means you are NOT forced to catch it by the compiler. Please refer toMalformedCachePatternException
for a discussion of when you should and shouldn't catch this exception.- Specified by:
getPattern
in interfacePatternCache
- Parameters:
expression
- The regular expression to fetch from the cache in compiled form.options
- The compilation options to use when compiling the expression.- Returns:
- The Pattern corresponding to the String representation of the regular expression.
- Throws:
MalformedCachePatternException
- If there is an error in compiling the regular expression.
-
getPattern
public final Pattern getPattern(java.lang.String expression) throws MalformedCachePatternException
Same as callinggetPattern(expression, 0)
- Specified by:
getPattern
in interfacePatternCache
- Parameters:
expression
- The regular expression to fetch from the cache in compiled form.- Returns:
- The Pattern corresponding to the String representation of the regular expression.
- Throws:
MalformedCachePatternException
- If there is an error in compiling the regular expression.
-
size
public final int size()
Returns the number of elements in the cache, not to be confused with thecapacity()
which returns the number of elements that can be held in the cache at one time.- Returns:
- The current size of the cache (i.e., the number of elements currently cached).
-
capacity
public final int capacity()
Returns the maximum number of patterns that can be cached at one time.- Specified by:
capacity
in interfacePatternCache
- Returns:
- The maximum number of patterns that can be cached at one time.
-
-