EntryInfo (Map<String, EntryInfo> map, @Nullable Logger logger, String normalizedName) { EntryInfo entry = map.get(normalizedName); if (entry == null || !entry.isDirectory) { if (logger != null && entry != null) logger.trace("duplicate entry: " + getFile() + "!/" + normalizedName); if (normalizedName.isEmpty()) { entry = createRootEntry(); } else { Pair<String, String> path = split(normalizedName); EntryInfo parent = directoryEntry(map, logger, path.first); entry = new EntryInfo(path.second, true, DEFAULT_LENGTH, DEFAULT_TIMESTAMP, parent); } map.put(normalizedName, entry); } return entry; }