src/main/java/org/eiichiro/reverb/lang/JLCClassResolver.java
@Override
	public Set<Class<?>> resolveBySuperclass(final Class<?> superclass)
			throws IOException {
		Matcher<Class<?>> matcher = new Matcher<Class<?>>() {
			
			public boolean matches(Class<?> clazz) {
				if (clazz.getSuperclass() != null) {
					if (clazz.getSuperclass().equals(superclass)) {
						return true;
					} else {
						return matches(clazz.getSuperclass());
					}
					
				} else {
					return false;
				}
			}
			
		};
		return resolve(matcher);
	}
@Override
	public Set<Class<?>> resolveBySuperclass(final Class<?> superclass)
			throws IOException {
		Matcher<Class<?>> matcher = new Matcher<Class<?>>() {
			
			public boolean matches(Class<?> clazz) {
				if (clazz.getSuperclass() != null) {
					if (clazz.getSuperclass().equals(superclass)) {
						return true;
					} else {
						return matches(clazz.getSuperclass());
					}
					
				} else {
					return false;
				}
			}
			
		};
		return resolve(matcher);
	}
Resolves the classes that inherits the specified superclass as
{@code java.lang.Class}.

@param superclass The superclass being inherited.
@return Classes that inherits the specified superclass as
{@code java.lang.Class}.
@throws IOException If any I/O access fails while traversing the search
path.