in oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/parser/AbstractAnnotationParser.java [69:114]
public void parser(Class<?> cls, OasContext context) {
this.cls = cls;
this.context = context;
if (!canProcess(cls)) {
return;
}
for (Annotation clsAnnotation : cls.getAnnotations()) {
AnnotationProcessor annotationProcessor = classAnnotationMap.get(clsAnnotation.annotationType());
if (annotationProcessor == null) {
continue;
}
annotationProcessor.process(clsAnnotation, context);
}
postParseClassAnnotaion(context);
List<Method> methods = Arrays.asList(cls.getDeclaredMethods());
methods.sort(Comparator.comparing(Method::getName));
for (Method m : methods) {
OperationContext operationContext = new OperationContext(m, context);
for (Annotation methodAnnotation : m.getAnnotations()) {
MethodAnnotationProcessor annotationProcessor = methodAnnotationMap.get(methodAnnotation.annotationType());
if (annotationProcessor != null) {
annotationProcessor.process(methodAnnotation, operationContext);
}
}
postParseMethodAnnotation(operationContext);
java.lang.reflect.Parameter[] parameters = m.getParameters();
for (java.lang.reflect.Parameter parameter : parameters) {
ParameterContext parameterContext = new ParameterContext(operationContext, parameter);
for (Annotation paramAnnotation : parameter.getAnnotations()) {
ParamAnnotationProcessor paramAnnotationProcessor = parameterAnnotationMap
.get(paramAnnotation.annotationType());
if (paramAnnotationProcessor != null) {
paramAnnotationProcessor.process(paramAnnotation, parameterContext);
}
}
postParseParameterAnnotation(parameterContext);
}
}
}