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 long
The compressed size of the zip entry, in bytes.final String
The zip entry path.final String
The unversioned entry name (i.e.final int
The file attributes for this resource, or 0 if unknown.(package private) final boolean
True if the zip entry is deflated; false if the zip entry is stored.private final int
The last modified date in MSDOS format, iflastModifiedTimeMillis
is 0L.private long
The last modified millis since the epoch, or 0L if it is unknownprivate final int
The last modified time in MSDOS format, iflastModifiedTimeMillis
is 0L.private final long
The offset of the entry's local header, as an offset relative to the parent logical zipfile.(package private) final LogicalZipFile
The parent logical zipfile.private Slice
TheSlice
for the zip entry's raw data (which can be either stored or deflated).final long
The uncompressed size of the zip entry, in bytes.(package private) final int
The 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 TypeMethodDescriptionint
Sort in decreasing order of version number, then lexicographically increasing order of unversioned entry path.boolean
long
Get 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.int
hashCode()
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, iflastModifiedTimeMillis
is 0L. -
lastModifiedDateMSDOS
private final int lastModifiedDateMSDOSThe last modified date in MSDOS format, iflastModifiedTimeMillis
is 0L. -
fileAttributes
public final int fileAttributesThe file attributes for this resource, or 0 if unknown. -
slice
TheSlice
for the zip entry's raw data (which can be either stored or deflated). -
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:
compareTo
in interfaceComparable<FastZipEntry>
- Parameters:
o
- the object to compare to- Returns:
- the result of comparison
-
hashCode
public int hashCode() -
equals
-
toString
-