Optional readErrorHandlingIncludingInherited()

in src/main/java/feign/error/AnnotationErrorDecoder.java [115:131]


    Optional<ErrorHandling> readErrorHandlingIncludingInherited(Class<?> apiType) {
      if (apiType.isAnnotationPresent(ErrorHandling.class)) {
        return Optional.of(apiType.getAnnotation(ErrorHandling.class));
      }
      for (Class<?> parentInterface : apiType.getInterfaces()) {
        Optional<ErrorHandling> errorHandling =
            readErrorHandlingIncludingInherited(parentInterface);
        if (errorHandling.isPresent()) {
          return errorHandling;
        }
      }
      // Finally, if there's a superclass that isn't Object check if the superclass has anything
      if (!apiType.isInterface() && !apiType.getSuperclass().equals(Object.class)) {
        return readErrorHandlingIncludingInherited(apiType.getSuperclass());
      }
      return Optional.empty();
    }