/** * Creates a new {@link ClassElement} object. * * @param clazz class information. * @return a new {@link ClassElement} object. */ public static ClassElement newClassElement(PsiClass clazz) { ClassElement ce = new ClassElement(); // name ce.setName(clazz.getName()); ce.setQualifiedName(clazz.getQualifiedName()); // super PsiClass superClass = clazz.getSuperClass(); if (superClass != null && !CommonClassNames.JAVA_LANG_OBJECT.equals(superClass.getQualifiedName())) { ce.setSuperName(superClass.getName()); } // interfaces ce.setImplementNames(PsiAdapter.getImplementsClassnames(clazz)); // other ce.setEnum(clazz.isEnum()); ce.setDeprecated(clazz.isDeprecated()); ce.setException(PsiAdapter.isExceptionClass(clazz)); ce.setAbstract(clazz.hasModifierProperty(PsiModifier.ABSTRACT)); ce.setTypeParams(clazz.getTypeParameters().length); return ce; }
private void annotateExtension(Extension extension, DomElementAnnotationHolder holder) { final ExtensionPoint extensionPoint = extension.getExtensionPoint(); if (extensionPoint == null) { return; } final GenericAttributeValue<PsiClass> interfaceAttribute = extensionPoint.getInterface(); if (!DomUtil.hasXml(interfaceAttribute)) { return; } final PsiClass value = interfaceAttribute.getValue(); if (value != null && value.isDeprecated()) { final Annotation annotation = holder.createAnnotation(extension, HighlightSeverity.WARNING, "Deprecated EP"); annotation.setHighlightType(ProblemHighlightType.LIKE_DEPRECATED); } }