CoreJarVirtualFile (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; }