mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
DevKit: better bean class fields handling in ExtensionDomExtender
This commit is contained in:
@@ -40,6 +40,8 @@ import com.intellij.util.xmlb.annotations.Tag;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.devkit.dom.*;
|
||||
import org.jetbrains.uast.UClass;
|
||||
import org.jetbrains.uast.UastContextKt;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.util.*;
|
||||
@@ -126,7 +128,16 @@ public class ExtensionDomExtender extends DomExtender<Extensions> {
|
||||
private static void registerXmlb(final DomExtensionsRegistrar registrar, @Nullable final PsiClass beanClass, @NotNull List<With> elements) {
|
||||
if (beanClass == null) return;
|
||||
|
||||
for (PsiField field : beanClass.getAllFields()) {
|
||||
PsiField[] fields;
|
||||
UClass beanClassNavigationClass = UastContextKt.toUElement(beanClass.getNavigationElement(), UClass.class);
|
||||
if (beanClassNavigationClass != null) {
|
||||
fields = beanClassNavigationClass.getAllFields();
|
||||
}
|
||||
else {
|
||||
fields = beanClass.getAllFields(); // fallback
|
||||
}
|
||||
|
||||
for (PsiField field : fields) {
|
||||
registerField(registrar, field, findWithElement(elements, field));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user