@Override
  public @Nullable <T extends DomElement> DomFileElementImpl<T> getFileElement(@Nullable XmlFile file) {
    if (file == null || !(file.getFileType() instanceof DomSupportEnabled)) return null;
    //noinspection unchecked
    return (DomFileElementImpl<T>)CachedValuesManager.getCachedValue(file, chooseKey(FILE_ELEMENT_KEY, FILE_ELEMENT_KEY_FOR_INDEX), () ->
      CachedValueProvider.Result.create(DomCreator.createFileElement(file), PsiModificationTracker.MODIFICATION_COUNT, this));
  }
@Override
  public @Nullable <T extends DomElement> DomFileElementImpl<T> getFileElement(@Nullable XmlFile file)