XmlElementDescriptor[] (XmlTag context) { final PsiElement declaration = getDeclaration(); final PsiType propertyType = JavaFxPsiUtil.getWritablePropertyType(myPsiClass, declaration); if (propertyType != null) { final ArrayList<XmlElementDescriptor> descriptors = new ArrayList<>(); for (String name : FxmlConstants.FX_BUILT_IN_TAGS) { descriptors.add(new JavaFxBuiltInTagDescriptor(name, null)); } final PsiType collectionItemType = JavaGenericsUtil.getCollectionItemType(propertyType, declaration.getResolveScope()); if (collectionItemType != null) { collectSubclassesDescriptors(collectionItemType, descriptors, context); } else if (!JavaFxPsiUtil.isPrimitiveOrBoxed(propertyType)) { collectSubclassesDescriptors(propertyType, descriptors, context); } if (!descriptors.isEmpty()) return descriptors.toArray(XmlElementDescriptor.EMPTY_ARRAY); } return XmlElementDescriptor.EMPTY_ARRAY; }