org.at4j.zip.ef
Class ExtendedTimestampExtraField

java.lang.Object
  extended by org.at4j.zip.ef.ExtendedTimestampExtraField
All Implemented Interfaces:
ZipEntryExtraField

public class ExtendedTimestampExtraField
extends Object
implements ZipEntryExtraField

This ZipEntryExtraField stores zero or more of a Zip entry's last modification, last access and original creation times, specified as Date values in the UTC time zone.

If this field is from the central header, it only contains the last modification time or no time at all.

Instances of this object are immutable.

Since:
1.0
Author:
Karl Gustafsson

Field Summary
static UnsignedShort CODE
          The code that is used to identify this extra field in a Zip file.
 
Constructor Summary
ExtendedTimestampExtraField(boolean inLocalHeader, Date lastModificationTime, Date lastAccessTime, Date originalCreationTime)
          Create a new UniversalTimeExtraField object.
 
Method Summary
 byte[] encode(ZipBuilderConfiguration builder)
          Encode this extra field's data for storing in a Zip file.
 boolean equals(Object o)
           
 Date getLastAccessed()
          Get the time when the entity in the Zip entry was last accessed, if set.
 Date getLastModified()
          Get the time of last modification for the entity in the Zip entry, if set.
 Date getOriginalCreationTime()
          Get the time when the entity in the Zip entry was originally created, if set.
 int hashCode()
           
 boolean isInLocalHeader()
          Is this field stored in the Zip entry's local header or in the Zip file's central directory record?
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CODE

public static final UnsignedShort CODE
The code that is used to identify this extra field in a Zip file.

Constructor Detail

ExtendedTimestampExtraField

public ExtendedTimestampExtraField(boolean inLocalHeader,
                                   Date lastModificationTime,
                                   Date lastAccessTime,
                                   Date originalCreationTime)
Create a new UniversalTimeExtraField object.

Parameters:
inLocalHeader - Is this extra field from the Zip entry's local header (true) or from the Zip file's central header (false)?
lastModificationTime - The last modification time of the entity in the Zip entry. May be null.
lastAccessTime - The last access time of the entity in the Zip entry. May be null.
originalCreationTime - The original creation of the entity in the Zip entry. May be null.
Method Detail

isInLocalHeader

public boolean isInLocalHeader()
Description copied from interface: ZipEntryExtraField
Is this field stored in the Zip entry's local header or in the Zip file's central directory record?

The same ZipEntryExtraField type may have different properties depending on if it is specified in the local or in the central header.

Specified by:
isInLocalHeader in interface ZipEntryExtraField
Returns:
true if this extra field comes from the Zip entry's local header. false if it comes from the Zip file's central directory.

getLastModified

public Date getLastModified()
Get the time of last modification for the entity in the Zip entry, if set.

Returns:
The time of last modification for the entity in the Zip entry, in the UTC time zone, or null if this property was not set in the extra field.

getLastAccessed

public Date getLastAccessed()
Get the time when the entity in the Zip entry was last accessed, if set.

If this extra field is from the Zip file's central header, this method always returns null.

Returns:
The last access time for the entity in the Zip entry, in the UTC time zone, or null if this property was not set in the extra field.

getOriginalCreationTime

public Date getOriginalCreationTime()
Get the time when the entity in the Zip entry was originally created, if set.

If this extra field is from the Zip file's central header, this method always returns null.

Returns:
The original creation time for the entity in the Zip entry, in the UTC time zone, or null if this property was not set in the extra field.

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object

encode

public byte[] encode(ZipBuilderConfiguration builder)
Description copied from interface: ZipEntryExtraField
Encode this extra field's data for storing in a Zip file. This is used when building Zip files.

Specified by:
encode in interface ZipEntryExtraField
Parameters:
builder - The configuration for the Zip builder object that is building the Zip file.
Returns:
A byte array containing the extra field data as it should be stored in the Zip file. The returned array should not contain the initial four bytes with the extra field code and the extra field length.