String className = filterDescription.getClassName();
currentLocateable = filterDescription;
// use cached factory to create filter
if (filterName != null && factoryClassName == null) {
TokenFilterFactory tokenFilterFactory = cachedFactories.get(filterName);
if (tokenFilterFactory == null)
throw createException("No factory registered for " + filterName
+ ". Please provide a factory");
filteredTokenStream = createTokenFilter(filteredTokenStream, filterDescription, tokenFilterFactory);
}
// use single argument constructor of a token filter
else if (className != null)
{
filteredTokenStream = createTokenFilterWithClassName(filteredTokenStream, className);
}
// use factory for creating the filter and cache it if needed
else if (factoryClassName != null)
{
TokenFilterFactory tokenFilterFactory = createTokenFilterFactory(factoryClassName);
filteredTokenStream = createTokenFilter(filteredTokenStream, filterDescription, tokenFilterFactory);
if( filterDescription.isReuseFactory() ){
if( filterName == null )
throw createException("Provide a name for factory reuse ");
cachedFactories.put(filterName, tokenFilterFactory);