public static @NotNull Pair<PsiClass, Boolean> getTagValueClass(@NotNull XmlTag xmlTag, @Nullable PsiClass tagClass) {
    if (tagClass != null) {
      final XmlAttribute constAttr = xmlTag.getAttribute(FxmlConstants.FX_CONSTANT);
      if (constAttr != null) {
        final PsiField constField = tagClass.findFieldByName(constAttr.getValue(), true);
        if (constField != null) {
          final PsiType constType = constField.getType();
          return Pair.create(PsiUtil.resolveClassInClassTypeOnly(
            constType instanceof PsiPrimitiveType ? ((PsiPrimitiveType)constType).getBoxedType(xmlTag) : constType), true);
        }
      }
      else {
        final XmlAttribute factoryAttr = xmlTag.getAttribute(FxmlConstants.FX_FACTORY);
        if (factoryAttr != null) {
          return Pair.create(getFactoryProducedClass(tagClass, factoryAttr.getValue()), true);
        }
      }
    }
    return Pair.create(tagClass, false);
  }
public static @NotNull Pair<PsiClass, Boolean> getTagValueClass(@NotNull XmlTag xmlTag, @Nullable PsiClass tagClass)