## net.i2p.data
Class DateAndFlags

    java.lang.Object
      net.i2p.data.DataStructureImpl
          net.i2p.data.DateAndFlags

All Implemented Interfaces:
  DataStructure

    public class DateAndFlags

extends DataStructureImpl

A six-byte Date and 2 bytes of flags, since a Date won't encroach on the top two bytes until the year 10889. The flag format is not specified here. The bits may be used in an application-specific manner. The application should be designed so that a flags value of 0 is the default, for compatibility with an 8-byte Date. If we really need some more bits we could use the first few bits of the third byte.

Since:
  0.8.4
Author:
  zzz

Constructor Summary
`DateAndFlags()`
`DateAndFlags(Date date, int flags)`
`DateAndFlags(long date, int flags)`

Method Summary
`boolean` `equals(Object object)`
`void` `fromByteArray(byte[] data)` Overridden for efficiency.
`Date` `getDate()` The Date object is created here, it is not cached.
`int` `getFlags()`
`long` `getTime()`
`int` `hashCode()`
`void` `readBytes(InputStream in)` Load up the current object with data from the given stream.
`void` `setDate(Date date)`
`void` `setDate(long date)`
`void` `setFlags(int flags)`
`byte[]` `toByteArray()` Overridden for efficiency.
`String` `toString()`
`void` `writeBytes(OutputStream out)` Write out the data structure to the stream, using the format defined in the I2P data structure specification.

Methods inherited from class net.i2p.data.DataStructureImpl
`calculateHash, fromBase64, read, toBase64`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### DateAndFlags

    public DateAndFlags()

### DateAndFlags

    public DateAndFlags(long date,
                        int flags)

Parameters:
  `flags` - 0 - 65535

### DateAndFlags

    public DateAndFlags(Date date,
                        int flags)

Parameters:
  `flags` - 0 - 65535

Method Detail

### getFlags

    public int getFlags()

### setFlags

    public void setFlags(int flags)

  Parameters:
    `flags` - 0 - 65535

### getDate

    public Date getDate()

  The Date object is created here, it is not cached. Use getTime() if you only need the long value.

### getTime

    public long getTime()

### setDate

    public void setDate(long date)

### setDate

    public void setDate(Date date)

### readBytes

    public void readBytes(InputStream in)
                   throws DataFormatException,
                          IOException

  Description copied from interface: `DataStructure`
  Load up the current object with data from the given stream. Data loaded this way must match the I2P data structure specification.

  Parameters:
    `in` - stream to read from
  Throws:
    `DataFormatException` - if the data is improperly formatted
    `IOException` - if there was a problem reading the stream

### writeBytes

    public void writeBytes(OutputStream out)
                    throws DataFormatException,
                           IOException

  Description copied from interface: `DataStructure`
  Write out the data structure to the stream, using the format defined in the I2P data structure specification.

  Parameters:
    `out` - stream to write to
  Throws:
    `DataFormatException` - if the data was incomplete or not yet ready to be written
    `IOException` - if there was a problem writing to the stream

### toByteArray

    public byte[] toByteArray()

  Overridden for efficiency.

  Specified by:
    `toByteArray` in interface `DataStructure`
  Overrides:
    `toByteArray` in class `DataStructureImpl`

### fromByteArray

    public void fromByteArray(byte[] data)
                       throws DataFormatException

  Overridden for efficiency.

  Specified by:
    `fromByteArray` in interface `DataStructure`
  Overrides:
    `fromByteArray` in class `DataStructureImpl`
  Parameters:
    `data` - non-null
  Throws:
    `DataFormatException` - if null or wrong length

### equals

    public boolean equals(Object object)

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`