Class SPIClassIterator<S>

  extended by 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.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

Method Summary
<S> SPIClassIterator<S>
get(Class<S> clazz)
<S> SPIClassIterator<S>
get(Class<S> clazz, ClassLoader loader)
 boolean hasNext()
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.
 Class<? extends S> next()
 void remove()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Detail


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


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


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.


public boolean hasNext()
Specified by:
hasNext in interface Iterator<Class<? extends S>>


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


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

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.