src/main/java/org/eiichiro/reverb/lang/JLCClassResolver.java
@Override
	public Set<Class<?>> resolveByAnnotation(
			final Class<? extends Annotation> annotation) throws IOException {
		Matcher<Class<?>> matcher = new Matcher<Class<?>>() {
			
			public boolean matches(Class<?> clazz) {
				Annotation[] annotations = clazz.getAnnotations();
				
				for (Annotation a : annotations) {
					if (a.annotationType().equals(annotation)) {
						return true;
					}
				}
				
				return false;
			}
			
		};
		return resolve(matcher);
	}
@Override
	public Set<Class<?>> resolveByAnnotation(
			final Class<? extends Annotation> annotation) throws IOException {
		Matcher<Class<?>> matcher = new Matcher<Class<?>>() {
			
			public boolean matches(Class<?> clazz) {
				Annotation[] annotations = clazz.getAnnotations();
				
				for (Annotation a : annotations) {
					if (a.annotationType().equals(annotation)) {
						return true;
					}
				}
				
				return false;
			}
			
		};
		return resolve(matcher);
	}
Resolves the classes that is annotated by the specified annotation as
{@code java.lang.Class}.

@param annotation The annotation the class being annotated.
@return Classes that is annotated by the specified annotation as
{@code java.lang.Class}.
@throws IOException If any I/O access fails while traversing the search
path.