Kind () { final PsiClass effectiveClass = getEffectiveClass(); if (effectiveClass == null) { return Kind.UNRESOLVED_CLASS; } if (ADDITIONAL_DEPRECATED_EP.containsKey(getEffectiveQualifiedName())) { return Kind.ADDITIONAL_DEPRECATED; } if (effectiveClass.hasAnnotation(ApiStatus.Internal.class.getCanonicalName())) { return Kind.INTERNAL_API; } if (effectiveClass.hasAnnotation(ApiStatus.ScheduledForRemoval.class.getCanonicalName())) { return Kind.SCHEDULED_FOR_REMOVAL_API; } if (effectiveClass.hasAnnotation(ApiStatus.Experimental.class.getCanonicalName())) { return Kind.EXPERIMENTAL_API; } if (effectiveClass.hasAnnotation(ApiStatus.Obsolete.class.getCanonicalName())) { return Kind.OBSOLETE; } if (effectiveClass.isDeprecated()) { PsiAnnotation deprecatedAnno = effectiveClass.getAnnotation(CommonClassNames.JAVA_LANG_DEPRECATED); if (deprecatedAnno != null && AnnotationUtil.getBooleanAttributeValue(deprecatedAnno, "forRemoval") == Boolean.TRUE) { return Kind.SCHEDULED_FOR_REMOVAL_API; } return Kind.DEPRECATED; } return Kind.DEFAULT; }