in fractions/swagger/src/main/java/org/wildfly/swarm/swagger/deployment/SwaggerExtension.java [63:123]
public <T extends Application> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event) {
AnnotatedType<T> annotatedType = event.getAnnotatedType();
if (Application.class.isAssignableFrom(annotatedType.getJavaClass())) {
// Do our magic.
event.setAnnotatedType(new AnnotatedType<T>() {
private final Annotation ADD_SWAGGER_ANNOTATION = () -> AddSwaggerResources.class;
@Override
public Class<T> getJavaClass() {
return annotatedType.getJavaClass();
}
@Override
public Set<AnnotatedConstructor<T>> getConstructors() {
return annotatedType.getConstructors();
}
@Override
public Set<AnnotatedMethod<? super T>> getMethods() {
return annotatedType.getMethods();
}
@Override
public Set<AnnotatedField<? super T>> getFields() {
return annotatedType.getFields();
}
@Override
public Type getBaseType() {
return annotatedType.getBaseType();
}
@Override
public Set<Type> getTypeClosure() {
return annotatedType.getTypeClosure();
}
@SuppressWarnings("unchecked")
@Override
public <A extends Annotation> A getAnnotation(Class<A> annotationType) {
if (AddSwaggerResources.class.equals(annotationType)) {
return (A) ADD_SWAGGER_ANNOTATION;
}
return annotatedType.getAnnotation(annotationType);
}
@Override
public Set<Annotation> getAnnotations() {
Set<Annotation> annotations = new HashSet<>(annotatedType.getAnnotations());
annotations.add(ADD_SWAGGER_ANNOTATION);
return annotations;
}
@Override
public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) {
return false;
}
});
}
}