@Override public ZipEntry getEntry(String name) { return this.entries.getEntry(name); }
public RandomAccessData getEntryData(String name) throws IOException { FileHeader entry = getEntry(name, FileHeader.class, false); if (entry == null) { return null; } return getEntryData(entry); }
public boolean containsEntry(CharSequence name) { return getEntry(name, FileHeader.class, true) != null; }
public JarEntry getJarEntry(CharSequence name) { return this.entries.getEntry(name); }
public JarEntry getEntry(CharSequence name) { return getEntry(name, JarEntry.class, true); }
private <T extends FileHeader> T doGetEntry(CharSequence name, Class<T> type, boolean cacheEntry, AsciiBytes nameAlias) { int hashCode = AsciiBytes.hashCode(name); T entry = getEntry(hashCode, name, NO_SUFFIX, type, cacheEntry, nameAlias); if (entry == null) { hashCode = AsciiBytes.hashCode(hashCode, SLASH); entry = getEntry(hashCode, name, SLASH, type, cacheEntry, nameAlias); } return entry; }
public InputStream getInputStream(String name) throws IOException { FileHeader entry = getEntry(name, FileHeader.class, false); return getInputStream(entry); }
private <T extends FileHeader> T getEntry(int hashCode, CharSequence name, char suffix, Class<T> type, boolean cacheEntry, AsciiBytes nameAlias) { int index = getFirstIndex(hashCode); while (index >= 0 && index < this.size && this.hashCodes[index] == hashCode) { T entry = getEntry(index, type, cacheEntry, nameAlias); if (entry.hasName((nameAlias != null) ? nameAlias.toString() : name, suffix)) { return entry; } index++; } return null; }