org.apache.lucene.util
Class SPIClassIterator<S>

java.lang.Object
  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
static
<S> SPIClassIterator<S>
get(Class<S> clazz)
           
static
<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

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<Class<? extends S>>

next

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

remove

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


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