Package org.apache.commons.compress.archivers.zip

# Class X000A_NTFS

java.lang.Object
org.apache.commons.compress.archivers.zip.X000A_NTFS

All Implemented Interfaces:
  `ZipExtraField`

public class X000A_NTFS extends Object implements ZipExtraField
NTFS extra field that was thought to store various attributes but in reality only stores timestamps.

        4.5.5 -NTFS Extra Field (0x000a):

           The following is the layout of the NTFS attributes
           "extra" block. (Note: At this time the Mtime, Atime
           and Ctime values MAY be used on any WIN32 system.)

           Note: all fields stored in Intel low-byte/high-byte order.

             Value      Size       Description
             -----      ----       -----------
     (NTFS)  0x000a     2 bytes    Tag for this "extra" block type
             TSize      2 bytes    Size of the total "extra" block
             Reserved   4 bytes    Reserved for future use
             Tag1       2 bytes    NTFS attribute tag value #1
             Size1      2 bytes    Size of attribute #1, in bytes
             (var)      Size1      Attribute #1 data
              .
              .
              .
              TagN       2 bytes    NTFS attribute tag value #N
              SizeN      2 bytes    Size of attribute #N, in bytes
              (var)      SizeN      Attribute #N data

            For NTFS, values for Tag1 through TagN are as follows:
            (currently only one set of attributes is defined for NTFS)

              Tag        Size       Description
              -----      ----       -----------
              0x0001     2 bytes    Tag for attribute #1
              Size1      2 bytes    Size of attribute #1, in bytes
              Mtime      8 bytes    File last modification time
              Atime      8 bytes    File last access time
              Ctime      8 bytes    File creation time

Since:
  1.11
This class is not thread-safe

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final ZipShort`
  `HEADER_ID`
  The header ID for this extra field.

  ### Fields inherited from interface org.apache.commons.compress.archivers.zip.ZipExtraField

  `EXTRAFIELD_HEADER_SIZE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `X000A_NTFS()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object o)`
  `FileTime`
  `getAccessFileTime()`
  Gets the access time as a `FileTime` of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
  `Date`
  `getAccessJavaTime()`
  Gets the access time as a java.util.Date of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
  `ZipEightByteInteger`
  `getAccessTime()`
  Gets the "File last access time" of this ZIP entry as a ZipEightByteInteger object, or `ZipEightByteInteger.ZERO` if no such timestamp exists in the ZIP entry.
  `byte[]`
  `getCentralDirectoryData()`
  Gets the actual data to put into central directory data - without Header-ID or length specifier.
  `ZipShort`
  `getCentralDirectoryLength()`
  Gets the length of the extra field in the local file data - without Header-ID or length specifier.
  `FileTime`
  `getCreateFileTime()`
  Gets the create time as a `FileTime` of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
  `Date`
  `getCreateJavaTime()`
  Gets the create time as a java.util.Date of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
  `ZipEightByteInteger`
  `getCreateTime()`
  Gets the "File creation time" of this ZIP entry as a ZipEightByteInteger object, or `ZipEightByteInteger.ZERO` if no such timestamp exists in the ZIP entry.
  `ZipShort`
  `getHeaderId()`
  Gets the Header-ID.
  `byte[]`
  `getLocalFileDataData()`
  Gets the actual data to put into local file data - without Header-ID or length specifier.
  `ZipShort`
  `getLocalFileDataLength()`
  Gets the length of the extra field in the local file data - without Header-ID or length specifier.
  `FileTime`
  `getModifyFileTime()`
  Gets the modify time as a `FileTime` of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
  `Date`
  `getModifyJavaTime()`
  Gets the modify time as a java.util.Date of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
  `ZipEightByteInteger`
  `getModifyTime()`
  Gets the "File last modification time" of this ZIP entry as a ZipEightByteInteger object, or `ZipEightByteInteger.ZERO` if no such timestamp exists in the ZIP entry.
  `int`
  `hashCode()`
  `void`
  `parseFromCentralDirectoryData(byte[] buffer, int offset, int length)`
  Doesn't do anything special since this class always uses the same parsing logic for both central directory and local file data.
  `void`
  `parseFromLocalFileData(byte[] data, int offset, int length)`
  Populate data from this array as if it was in local file data.
  `void`
  `setAccessFileTime(FileTime time)`
  Sets the access time.
  `void`
  `setAccessJavaTime(Date d)`
  Sets the access time as a java.util.Date of this ZIP entry.
  `void`
  `setAccessTime(ZipEightByteInteger t)`
  Sets the File last access time of this ZIP entry using a ZipEightByteInteger object.
  `void`
  `setCreateFileTime(FileTime time)`
  Sets the create time.
  `void`
  `setCreateJavaTime(Date d)`
  Sets the create time as a java.util.Date of this ZIP entry.
  `void`
  `setCreateTime(ZipEightByteInteger t)`
  Sets the File creation time of this ZIP entry using a ZipEightByteInteger object.
  `void`
  `setModifyFileTime(FileTime time)`
  Sets the modify time.
  `void`
  `setModifyJavaTime(Date d)`
  Sets the modify time as a java.util.Date of this ZIP entry.
  `void`
  `setModifyTime(ZipEightByteInteger t)`
  Sets the File last modification time of this ZIP entry using a ZipEightByteInteger object.
  `String`
  `toString()`
  Returns a String representation of this class useful for debugging purposes.

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### HEADER_ID

    public static final ZipShort HEADER_ID
    The header ID for this extra field.
    Since:
      1.23

- ## Constructor Details

  - ### X000A_NTFS

    public X000A_NTFS()

- ## Method Details

  - ### equals

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

  - ### getAccessFileTime

    public FileTime getAccessFileTime()
    Gets the access time as a `FileTime` of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
    Returns:
      access time as a `FileTime` or null.
    Since:
      1.23

  - ### getAccessJavaTime

    public Date getAccessJavaTime()
    Gets the access time as a java.util.Date of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
    Returns:
      access time as java.util.Date or null.

  - ### getAccessTime

    public ZipEightByteInteger getAccessTime()
    Gets the "File last access time" of this ZIP entry as a ZipEightByteInteger object, or `ZipEightByteInteger.ZERO` if no such timestamp exists in the ZIP entry.
    Returns:
      File last access time

  - ### getCentralDirectoryData

    public byte[] getCentralDirectoryData()
    Gets the actual data to put into central directory data - without Header-ID or length specifier.
    Specified by:
      `getCentralDirectoryData` in interface `ZipExtraField`
    Returns:
      the central directory data

  - ### getCentralDirectoryLength

    public ZipShort getCentralDirectoryLength()
    Gets the length of the extra field in the local file data - without Header-ID or length specifier.

    For X5455 the central length is often smaller than the local length, because central cannot contain access or create timestamps.

    Specified by:
      `getCentralDirectoryLength` in interface `ZipExtraField`
    Returns:
      a `ZipShort` for the length of the data of this extra field

  - ### getCreateFileTime

    public FileTime getCreateFileTime()
    Gets the create time as a `FileTime` of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
    Returns:
      create time as a `FileTime` or null.
    Since:
      1.23

  - ### getCreateJavaTime

    public Date getCreateJavaTime()
    Gets the create time as a java.util.Date of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
    Returns:
      create time as java.util.Date or null.

  - ### getCreateTime

    public ZipEightByteInteger getCreateTime()
    Gets the "File creation time" of this ZIP entry as a ZipEightByteInteger object, or `ZipEightByteInteger.ZERO` if no such timestamp exists in the ZIP entry.
    Returns:
      File creation time

  - ### getHeaderId

    public ZipShort getHeaderId()
    Gets the Header-ID.
    Specified by:
      `getHeaderId` in interface `ZipExtraField`
    Returns:
      the value for the header id for this extrafield

  - ### getLocalFileDataData

    public byte[] getLocalFileDataData()
    Gets the actual data to put into local file data - without Header-ID or length specifier.
    Specified by:
      `getLocalFileDataData` in interface `ZipExtraField`
    Returns:
      get the data

  - ### getLocalFileDataLength

    public ZipShort getLocalFileDataLength()
    Gets the length of the extra field in the local file data - without Header-ID or length specifier.
    Specified by:
      `getLocalFileDataLength` in interface `ZipExtraField`
    Returns:
      a `ZipShort` for the length of the data of this extra field

  - ### getModifyFileTime

    public FileTime getModifyFileTime()
    Gets the modify time as a `FileTime` of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
    Returns:
      modify time as a `FileTime` or null.
    Since:
      1.23

  - ### getModifyJavaTime

    public Date getModifyJavaTime()
    Gets the modify time as a java.util.Date of this ZIP entry, or null if no such timestamp exists in the ZIP entry.
    Returns:
      modify time as java.util.Date or null.

  - ### getModifyTime

    public ZipEightByteInteger getModifyTime()
    Gets the "File last modification time" of this ZIP entry as a ZipEightByteInteger object, or `ZipEightByteInteger.ZERO` if no such timestamp exists in the ZIP entry.
    Returns:
      File last modification time

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### parseFromCentralDirectoryData

    public void parseFromCentralDirectoryData(byte[] buffer, int offset, int length) throws ZipException
    Doesn't do anything special since this class always uses the same parsing logic for both central directory and local file data.
    Specified by:
      `parseFromCentralDirectoryData` in interface `ZipExtraField`
    Parameters:
      `buffer` - the buffer to read data from
      `offset` - offset into buffer to read data
      `length` - the length of data
    Throws:
      `ZipException` - on error

  - ### parseFromLocalFileData

    public void parseFromLocalFileData(byte[] data, int offset, int length) throws ZipException
    Populate data from this array as if it was in local file data.
    Specified by:
      `parseFromLocalFileData` in interface `ZipExtraField`
    Parameters:
      `data` - an array of bytes
      `offset` - the start offset
      `length` - the number of bytes in the array from offset
    Throws:
      `ZipException` - on error

  - ### setAccessFileTime

    public void setAccessFileTime(FileTime time)
    Sets the access time.
    Parameters:
      `time` - access time as a `FileTime`
    Since:
      1.23

  - ### setAccessJavaTime

    public void setAccessJavaTime(Date d)
    Sets the access time as a java.util.Date of this ZIP entry.
    Parameters:
      `d` - access time as java.util.Date

  - ### setAccessTime

    public void setAccessTime(ZipEightByteInteger t)
    Sets the File last access time of this ZIP entry using a ZipEightByteInteger object.
    Parameters:
      `t` - ZipEightByteInteger of the access time

  - ### setCreateFileTime

    public void setCreateFileTime(FileTime time)
    Sets the create time.
    Parameters:
      `time` - create time as a `FileTime`
    Since:
      1.23

  - ### setCreateJavaTime

    public void setCreateJavaTime(Date d)

    Sets the create time as a java.util.Date of this ZIP entry. Supplied value is truncated to per-second precision (milliseconds zeroed-out).

    Note: the setters for flags and timestamps are decoupled. Even if the timestamp is not-null, it will only be written out if the corresponding bit in the flags is also set.

    Parameters:
      `d` - create time as java.util.Date

  - ### setCreateTime

    public void setCreateTime(ZipEightByteInteger t)
    Sets the File creation time of this ZIP entry using a ZipEightByteInteger object.
    Parameters:
      `t` - ZipEightByteInteger of the create time

  - ### setModifyFileTime

    public void setModifyFileTime(FileTime time)
    Sets the modify time.
    Parameters:
      `time` - modify time as a `FileTime`
    Since:
      1.23

  - ### setModifyJavaTime

    public void setModifyJavaTime(Date d)
    Sets the modify time as a java.util.Date of this ZIP entry.
    Parameters:
      `d` - modify time as java.util.Date

  - ### setModifyTime

    public void setModifyTime(ZipEightByteInteger t)
    Sets the File last modification time of this ZIP entry using a ZipEightByteInteger object.
    Parameters:
      `t` - ZipEightByteInteger of the modify time

  - ### toString

    public String toString()
    Returns a String representation of this class useful for debugging purposes.
    Overrides:
      `toString` in class `Object`
    Returns:
      A String representation of this class useful for debugging purposes.