private CoreJarVirtualFile getOrCreateFile(EntryInfo info, Map<EntryInfo, CoreJarVirtualFile> entries) {
    CoreJarVirtualFile file = entries.get(info);
    if (file == null) {
      long length = info.isDirectory ? -1 : info.length;
      CoreJarVirtualFile parent = info.parent != null ? getOrCreateFile(info.parent, entries) : null;
      file = new CoreJarVirtualFile(this, info.shortName, length, info.timestamp, parent);
      entries.put(info, file);
    }
    return file;
  }
private CoreJarVirtualFile getOrCreateFile(EntryInfo info, Map<EntryInfo, CoreJarVirtualFile> entries)