Class FastZipEntry
java.lang.Object
nonapi.io.github.classgraph.fastzipfilereader.FastZipEntry
- All Implemented Interfaces:
Comparable<FastZipEntry>
A zip entry within a
LogicalZipFile.-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal longThe compressed size of the zip entry, in bytes.final StringThe zip entry path.final StringThe unversioned entry name (i.e.final intThe file attributes for this resource, or 0 if unknown.(package private) final booleanTrue if the zip entry is deflated; false if the zip entry is stored.private final intThe last modified date in MSDOS format, iflastModifiedTimeMillisis 0L.private longThe last modified millis since the epoch, or 0L if it is unknownprivate final intThe last modified time in MSDOS format, iflastModifiedTimeMillisis 0L.private final longThe offset of the entry's local header, as an offset relative to the parent logical zipfile.(package private) final LogicalZipFileThe parent logical zipfile.private SliceTheSlicefor the zip entry's raw data (which can be either stored or deflated).final longThe uncompressed size of the zip entry, in bytes.(package private) final intThe version code (>= 9), or 8 for the base layer or a non-versioned jar (whether JDK 7 or 8 compatible). -
Constructor Summary
ConstructorsConstructorDescriptionFastZipEntry(LogicalZipFile parentLogicalZipFile, long locHeaderPos, String entryName, boolean isDeflated, long compressedSize, long uncompressedSize, long lastModifiedTimeMillis, int lastModifiedTimeMSDOS, int lastModifiedDateMSDOS, int fileAttributes, boolean enableMultiReleaseVersions) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionintSort in decreasing order of version number, then lexicographically increasing order of unversioned entry path.booleanlongGet the last modified time in Epoch millis, or 0L if unknown.getPath()Get the path to this zip entry, using "!/" as a separator between the parent logical zipfile and the entry name.getSlice()Lazily get zip entry slice -- this is deferred until zip entry data needs to be read, in order to avoid randomly seeking within zipfile for every entry as the central directory is read.inthashCode()toString()
-
Field Details
-
parentLogicalZipFile
The parent logical zipfile. -
locHeaderPos
private final long locHeaderPosThe offset of the entry's local header, as an offset relative to the parent logical zipfile. -
entryName
The zip entry path. -
isDeflated
final boolean isDeflatedTrue if the zip entry is deflated; false if the zip entry is stored. -
compressedSize
public final long compressedSizeThe compressed size of the zip entry, in bytes. -
uncompressedSize
public final long uncompressedSizeThe uncompressed size of the zip entry, in bytes. -
lastModifiedTimeMillis
private long lastModifiedTimeMillisThe last modified millis since the epoch, or 0L if it is unknown -
lastModifiedTimeMSDOS
private final int lastModifiedTimeMSDOSThe last modified time in MSDOS format, iflastModifiedTimeMillisis 0L. -
lastModifiedDateMSDOS
private final int lastModifiedDateMSDOSThe last modified date in MSDOS format, iflastModifiedTimeMillisis 0L. -
fileAttributes
public final int fileAttributesThe file attributes for this resource, or 0 if unknown. -
slice
-
version
final int versionThe version code (>= 9), or 8 for the base layer or a non-versioned jar (whether JDK 7 or 8 compatible). -
entryNameUnversioned
The unversioned entry name (i.e. entryName with "META_INF/versions/{versionInt}/" stripped)
-
-
Constructor Details
-
FastZipEntry
FastZipEntry(LogicalZipFile parentLogicalZipFile, long locHeaderPos, String entryName, boolean isDeflated, long compressedSize, long uncompressedSize, long lastModifiedTimeMillis, int lastModifiedTimeMSDOS, int lastModifiedDateMSDOS, int fileAttributes, boolean enableMultiReleaseVersions) Constructor.- Parameters:
parentLogicalZipFile- The parent logical zipfile containing this entry.locHeaderPos- The offset of the LOC header for this entry within the parent logical zipfile.entryName- The name of the entry.isDeflated- True if the entry is deflated; false if the entry is stored.compressedSize- The compressed size of the entry.uncompressedSize- The uncompressed size of the entry.lastModifiedTimeMillis- The last modified date/time in millis since the epoch, or 0L if unknown (in which case, the MSDOS time and date fields will be provided).lastModifiedTimeMSDOS- The last modified date, in MSDOS format, if lastModifiedMillis is 0L.lastModifiedDateMSDOS- The last modified date, in MSDOS format, if lastModifiedMillis is 0L.fileAttributes- The POSIX file attribute bits from the zip entry.
-
-
Method Details
-
getSlice
Lazily get zip entry slice -- this is deferred until zip entry data needs to be read, in order to avoid randomly seeking within zipfile for every entry as the central directory is read.- Returns:
- the offset within the physical zip file of the entry's start offset.
- Throws:
IOException- If an I/O exception occurs.
-
getPath
Get the path to this zip entry, using "!/" as a separator between the parent logical zipfile and the entry name.- Returns:
- the path of the entry
-
getLastModifiedTimeMillis
public long getLastModifiedTimeMillis()Get the last modified time in Epoch millis, or 0L if unknown.- Returns:
- the last modified time in Epoch millis.
-
compareTo
Sort in decreasing order of version number, then lexicographically increasing order of unversioned entry path.- Specified by:
compareToin interfaceComparable<FastZipEntry>- Parameters:
o- the object to compare to- Returns:
- the result of comparison
-
hashCode
-
equals
-
toString
-