Class SPIClassIterator<S>

java.lang.Object
org.apache.lucene.util.SPIClassIterator<S>
All Implemented Interfaces:
Iterator<Class<? extends S>>

public final class SPIClassIterator<S> extends Object implements Iterator<Class<? extends S>>
Helper class for loading SPI classes from classpath (META-INF files). This is a light impl of ServiceLoader but is guaranteed to be bug-free regarding classpath order and does not instantiate or initialize the classes found.
  • Method Details

    • get

      public static <S> SPIClassIterator<S> get(Class<S> clazz)
    • get

      public static <S> SPIClassIterator<S> get(Class<S> clazz, ClassLoader loader)
    • isParentClassLoader

      public static boolean isParentClassLoader(ClassLoader parent, ClassLoader child)
      Utility method to check if some class loader is a (grand-)parent of or the same as another one. This means the child will be able to load all classes from the parent, too.
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<S>
    • next

      public Class<? extends S> next()
      Specified by:
      next in interface Iterator<S>
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<S>