src/main/java/org/eiichiro/bootleg/CtClassClassResolver.java
@Override
	public Set<CtClass> resolveByAnnotation(final Class<? extends Annotation> annotation)
			throws IOException {
		Matcher<CtClass> matcher = new Matcher<CtClass>() {

			@Override
			public boolean matches(CtClass ctClass) {
				try {
					for (Object object : ctClass.getAnnotations()) {
						Annotation a = (Annotation) object;
						
						if (a.annotationType().equals(annotation)) {
							return true;
						}
					}
					
				} catch (Exception e) {}
				
				ctClass.detach();
				return false;
			}
			
		};
		return resolve(matcher);
	}
@Override
	public Set<CtClass> resolveByAnnotation(final Class<? extends Annotation> annotation)
			throws IOException {
		Matcher<CtClass> matcher = new Matcher<CtClass>() {

			@Override
			public boolean matches(CtClass ctClass) {
				try {
					for (Object object : ctClass.getAnnotations()) {
						Annotation a = (Annotation) object;
						
						if (a.annotationType().equals(annotation)) {
							return true;
						}
					}
					
				} catch (Exception e) {}
				
				ctClass.detach();
				return false;
			}
			
		};
		return resolve(matcher);
	}
Resolves the classes that is annotated by the specified annotation as
{@code javassist.CtClass}.

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