use of org.glassfish.hk2.classmodel.reflect.ClassModel in project Payara by payara.
the class AnnotationInfo method init.
private void init(ExtensibleType<? extends ExtensibleType> type) {
// recurse first so that re-stated annotations "override"
ExtensibleType<? extends ExtensibleType> supertype = type.getParent();
if (supertype != null) {
init(supertype);
}
for (InterfaceModel implementedInterface : type.getInterfaces()) {
if (implementedInterface != null && implementedInterface != type) {
init(implementedInterface);
}
}
// collect annotations
putAll(type.getAnnotations(), typeAnnotations);
if (type instanceof ClassModel) {
for (FieldModel field : ((ClassModel) type).getFields()) {
putAll(field.getAnnotations(), fieldAnnotations.computeIfAbsent(field.getName(), key -> new ConcurrentHashMap<>()));
}
}
for (MethodModel method : type.getMethods()) {
putAll(method.getAnnotations(), methodAnnotations.computeIfAbsent(getSignature(method), key -> new ConcurrentHashMap<>()));
for (Parameter parameter : method.getParameters()) {
putAll(parameter.getAnnotations(), methodParameterAnnotations.computeIfAbsent(getIdentifier(parameter), key -> new ConcurrentHashMap<>()));
}
}
}
use of org.glassfish.hk2.classmodel.reflect.ClassModel in project Payara by payara.
the class OpenApiWalker method processAnnotation.
@SuppressWarnings("unchecked")
public final void processAnnotation(ClassModel annotatedClass, ApiVisitor visitor) {
AnnotationInfo annotations = context.getAnnotationInfo(annotatedClass);
processAnnotation((E) annotatedClass, annotations, visitor, new OpenApiContext(context, annotatedClass));
for (final MethodModel method : annotatedClass.getMethods()) {
processAnnotation((E) method, annotations, visitor, new OpenApiContext(context, method));
}
for (final FieldModel field : annotatedClass.getFields()) {
processAnnotation((E) field, annotations, visitor, new OpenApiContext(context, field));
}
for (final MethodModel method : annotatedClass.getMethods()) {
for (org.glassfish.hk2.classmodel.reflect.Parameter parameter : method.getParameters()) {
processAnnotation((E) parameter, annotations, visitor, new OpenApiContext(context, method));
}
}
}
Aggregations