Class AnalysisSPILoader<S extends AbstractAnalysisFactory>

java.lang.Object
org.apache.lucene.analysis.util.AnalysisSPILoader<S>

public final class AnalysisSPILoader<S extends AbstractAnalysisFactory> extends Object
Helper class for loading named SPIs from classpath (e.g. Tokenizers, TokenStreams).
  • Field Details

  • Constructor Details

    • AnalysisSPILoader

      public AnalysisSPILoader(Class<S> clazz)
    • AnalysisSPILoader

      public AnalysisSPILoader(Class<S> clazz, String[] suffixes)
    • AnalysisSPILoader

      public AnalysisSPILoader(Class<S> clazz, String[] suffixes, ClassLoader classloader)
  • Method Details

    • reload

      public void reload(ClassLoader classloader)
      Reloads the internal SPI list from the given ClassLoader. Changes to the service list are visible after the method ends, all iterators (e.g., from availableServices(),...) stay consistent.

      NOTE: Only new service providers are added, existing ones are never removed or replaced.

      This method is expensive and should only be called for discovery of new service providers on the given classpath/classloader!

    • isValidName

      private boolean isValidName(String name)
    • newInstance

      public S newInstance(String name, Map<String,String> args)
    • lookupClass

      public Class<? extends S> lookupClass(String name)
    • availableServices

      public Set<String> availableServices()
    • newFactoryClassInstance

      public static <T extends AbstractAnalysisFactory> T newFactoryClassInstance(Class<T> clazz, Map<String,String> args)
      Creates a new instance of the given AbstractAnalysisFactory by invoking the constructor, passing the given argument map.