net.i2p.data
Class DateAndFlags

java.lang.Object
  extended by net.i2p.data.DataStructureImpl
      extended by net.i2p.data.DateAndFlags
All Implemented Interfaces:
Serializable, DataStructure
Direct Known Subclasses:
SendMessageOptions

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. See extending class net.i2p.client.SendMessageOptions for more info. If we really need some more bits we could use the first few bits of the third byte.

Since:
0.8.4
Author:
zzz
See Also:
Serialized Form

Field Summary
protected  int _flags
           
 
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
 

Field Detail

_flags

protected int _flags
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. Warning - many classes will throw IllegalStateException if data is already set.

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
Returns:
may be null if data is not set

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