public void parser()

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);
      }
    }
  }