Package net.i2p.data
Class DateAndFlags
- java.lang.Object
-
- net.i2p.data.DataStructureImpl
-
- 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
Fields Modifier and Type Field Description protected int
_flags
-
Constructor Summary
Constructors Constructor Description DateAndFlags()
DateAndFlags(long date, int flags)
DateAndFlags(Date date, int flags)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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(long date)
void
setDate(Date 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
-
-
-
-
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 formattedIOException
- 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 writtenIOException
- if there was a problem writing to the stream
-
toByteArray
public byte[] toByteArray()
Overridden for efficiency.- Specified by:
toByteArray
in interfaceDataStructure
- Overrides:
toByteArray
in classDataStructureImpl
- Returns:
- may be null if data is not set
-
fromByteArray
public void fromByteArray(byte[] data) throws DataFormatException
Overridden for efficiency.- Specified by:
fromByteArray
in interfaceDataStructure
- Overrides:
fromByteArray
in classDataStructureImpl
- Parameters:
data
- non-null- Throws:
DataFormatException
- if null or wrong length
-
-