code: @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);
  	}
docs: 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.