de.schlichtherle.util.zip
Class ZipEntry

java.lang.Object
  extended by de.schlichtherle.util.zip.ZipEntry
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
ZipEntry

public class ZipEntry
extends Object
implements Cloneable

Drop-in replacement for java.util.zip.ZipEntry. For every numeric property of this class, the default value is UNKNOWN in order to indicate an unknown state and it's permitted to set this value explicitly in order to reset the property.

Note that a ZipEntry object can be used with only one ZipFile or ZipOutputStream instance. Reusing the same ZipEntry object with a second object of these classes is an error and may result in unpredictable behaviour.

In general, this class is not thread-safe. However, it is safe to call only the getters of this class from multiple threads concurrently.

Version:
TrueZIP 6.7
Author:
Christian Schlichtherle

Field Summary
static int DEFLATED
          Compression method for compressed (deflated) entries.
static long MIN_DOS_TIME
          Smallest supported DOS date/time value in a ZIP file, which is January 1st, 1980 AD 00:00:00 local time.
static short PLATFORM_FAT
          Windows/DOS/FAT platform.
static short PLATFORM_UNIX
          Unix platform.
static int STORED
          Compression method for uncompressed (stored) entries.
static byte UNKNOWN
          The unknown value for numeric properties.
 
Constructor Summary
ZipEntry(String name)
          Creates a new zip entry with the specified name.
ZipEntry(ZipEntry blueprint)
          Creates a new zip blueprint with fields taken from the specified blueprint.
 
Method Summary
 Object clone()
           
protected static long dos2javaTime(long dTime)
          Deprecated. Use DateTimeConverter.toJavaTime(long) instead.
 String getComment()
           
 long getCompressedSize()
          Returns the Compressed Size of this entry.
 long getCrc()
           
protected  DateTimeConverter getDateTimeConverter()
          Returns a DateTimeConverter for the conversion of Java time to DOS date/time fields and vice versa.
protected  long getDosTime()
           
 byte[] getExtra()
          Returns a protective copy of the serialized Extra Fields.
 int getMethod()
          Returns the compression method for this entry.
 String getName()
          Returns the ZIP entry name.
 short getPlatform()
           
 long getSize()
          Returns the (Uncompressed) Size of this entry.
 long getTime()
           
 boolean isDirectory()
          Returns true if and only if this ZIP entry represents a directory entry (i.e. end with '/').
protected static long java2dosTime(long jTime)
          Deprecated. Use DateTimeConverter.toDosTime(long) instead.
 void setComment(String comment)
           
 void setCompressedSize(long csize)
          Sets the Compressed Size of this entry.
 void setCrc(long crc)
           
protected  void setDosTime(long dTime)
           
 void setExtra(byte[] data)
          Sets the serialized Extra Fields by making a protective copy.
 void setMethod(int method)
          Sets the compression method for this entry.
protected  void setName(String name)
          Resets the ZIP entry name.
 void setPlatform(short platform)
           
 void setSize(long size)
          Sets the (Uncompressed) Size of this entry.
 void setTime(long jTime)
           
 String toString()
          Returns the ZIP entry name.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNKNOWN

public static final byte UNKNOWN
The unknown value for numeric properties.

See Also:
Constant Field Values

PLATFORM_FAT

public static final short PLATFORM_FAT
Windows/DOS/FAT platform.

See Also:
Constant Field Values

PLATFORM_UNIX

public static final short PLATFORM_UNIX
Unix platform.

See Also:
Constant Field Values

STORED

public static final int STORED
Compression method for uncompressed (stored) entries.

See Also:
Constant Field Values

DEFLATED

public static final int DEFLATED
Compression method for compressed (deflated) entries.

See Also:
Constant Field Values

MIN_DOS_TIME

public static final long MIN_DOS_TIME
Smallest supported DOS date/time value in a ZIP file, which is January 1st, 1980 AD 00:00:00 local time.

See Also:
Constant Field Values
Constructor Detail

ZipEntry

public ZipEntry(String name)
Creates a new zip entry with the specified name.


ZipEntry

public ZipEntry(ZipEntry blueprint)
Creates a new zip blueprint with fields taken from the specified blueprint.

Method Detail

clone

public Object clone()
Overrides:
clone in class Object

getName

public String getName()
Returns the ZIP entry name.


setName

protected void setName(String name)
Resets the ZIP entry name. This method can be called at most once and only if this entry has been created with the copy constructor or the clone() method.

Since:
TrueZIP 6.0

isDirectory

public boolean isDirectory()
Returns true if and only if this ZIP entry represents a directory entry (i.e. end with '/').


getPlatform

public short getPlatform()

setPlatform

public void setPlatform(short platform)

getMethod

public int getMethod()
Returns the compression method for this entry.

See Also:
setMethod(int), ZipOutputStream.getMethod()

setMethod

public void setMethod(int method)
Sets the compression method for this entry.

Throws:
RuntimeException - If method is not STORED, DEFLATED or UNKNOWN.
See Also:
getMethod(), ZipOutputStream.setMethod(int)

getDosTime

protected long getDosTime()

setDosTime

protected void setDosTime(long dTime)

getTime

public long getTime()

setTime

public void setTime(long jTime)

getDateTimeConverter

protected DateTimeConverter getDateTimeConverter()
Returns a DateTimeConverter for the conversion of Java time to DOS date/time fields and vice versa.

The implementation in the class ZipEntry returns DateTimeConverter.JAR.

Returns:
A DateTimeConverter - never null.
See Also:
DateTimeConverter

getCrc

public long getCrc()

setCrc

public void setCrc(long crc)

getCompressedSize

public long getCompressedSize()
Returns the Compressed Size of this entry.

See Also:
setCompressedSize(long)

setCompressedSize

public void setCompressedSize(long csize)
Sets the Compressed Size of this entry.

Parameters:
csize - The Compressed Size.
Throws:
RuntimeException - If csize is not in the range from 0 to ULong.MAX_VALUE (9223372036854775807L).
See Also:
getCompressedSize()

getSize

public long getSize()
Returns the (Uncompressed) Size of this entry.

See Also:
setCompressedSize(long)

setSize

public void setSize(long size)
Sets the (Uncompressed) Size of this entry.

Parameters:
size - The (Uncompressed) Size.
Throws:
RuntimeException - If size is not in the range from 0 to ULong.MAX_VALUE (9223372036854775807L).
See Also:
getCompressedSize()

getExtra

public byte[] getExtra()
Returns a protective copy of the serialized Extra Fields. Note that unlike its blueprint ZipEntry.getExtra(), this method never returns null.

Returns:
A new byte array holding the serialized Extra Fields. null is never returned.

setExtra

public void setExtra(byte[] data)
Sets the serialized Extra Fields by making a protective copy.

Parameters:
data - The byte array holding the serialized Extra Fields. May be null.

getComment

public String getComment()

setComment

public void setComment(String comment)

toString

public String toString()
Returns the ZIP entry name.

Overrides:
toString in class Object

java2dosTime

protected static long java2dosTime(long jTime)
Deprecated. Use DateTimeConverter.toDosTime(long) instead.

Refactored to DateTimeConverter.JAR.toDosTime(jTime).


dos2javaTime

protected static long dos2javaTime(long dTime)
Deprecated. Use DateTimeConverter.toJavaTime(long) instead.

Refactored to DateTimeConverter.JAR.toJavaTime(dTime).