public @Nullable Element loadRootElement(@NotNull Path file) {
    if (myRootElementsCache == null) {
      return loadRootElement(file, myMacroExpander);
    }
    Element cached = myRootElementsCache.get(file);
    if (cached != null) {
      return cached != NULL_VALUE ? cached : null;
    }
    Element result = loadRootElement(file, myMacroExpander);
    myRootElementsCache.put(file, Objects.requireNonNullElse(result, NULL_VALUE));
    return result;
  }
public @Nullable Element loadRootElement(@NotNull Path file)