Class InheritanceSearch

  extended by org.apache.tapestry5.ioc.internal.util.InheritanceSearch
All Implemented Interfaces:
Iterable<Class>, Iterator<Class>

public class InheritanceSearch
extends Object
implements Iterator<Class>, Iterable<Class>

Used to search from a particular class up the inheritance hierarchy of extended classes and implemented interfaces.

The search starts with the initial class (provided in the constructor). It progresses up the inheritance chain, but skips java.lang.Object.

Once classes are exhausted, the inheritance hiearchy is searched. This is a breadth-first search, rooted in the interfaces implemented by the initial class at its super classes.

Once all interfaces are exhausted, java.lang.Object is returned (it is always returned last).

Two minor tweak to normal inheritance rules:

This class implements the Iterable interface, so it can be used directly in a for loop: for (Class search : new InheritanceSearch(startClass)) { ... }

This class is not threadsafe.

Constructor Summary
InheritanceSearch(Class searchClass)
Method Summary
 boolean hasNext()
 Iterator<Class> iterator()
 Class next()
 void remove()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public InheritanceSearch(Class searchClass)
Method Detail


public Iterator<Class> iterator()
Specified by:
iterator in interface Iterable<Class>


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


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


public void remove()
Specified by:
remove in interface Iterator<Class>
UnsupportedOperationException - always

Copyright © 2003-2012 The Apache Software Foundation.