@Override
  @Nullable
  public VirtualFile getVirtualFile() {
    VirtualFile cachedFile = myCachedFile;
    if (cachedFile == null ||
        !cachedFile.isValid() ||
        !(cachedFile.isCaseSensitive() ? getPath(cachedFile).equals(myPath) : getPath(cachedFile).equalsIgnoreCase(myPath))) {
      myCachedFile = cachedFile = findFile(myPath);
    }
    return cachedFile;
  }
@Override
  @Nullable
  public VirtualFile getVirtualFile()