public abstract class SimpleDataStructure extends DataStructureImpl
| Modifier and Type | Field and Description |
|---|---|
protected byte[] |
_data |
| Constructor and Description |
|---|
SimpleDataStructure()
A new instance with the data set to null.
|
SimpleDataStructure(byte[] data) |
| Modifier and Type | Method and Description |
|---|---|
Hash |
calculateHash()
Calculate the SHA256 value of this object (useful for a few scenarios)
|
boolean |
equals(Object obj)
Warning - this returns true for two different classes with the same size
and same data, e.g.
|
void |
fromBase64(String data)
Sets the data.
|
void |
fromByteArray(byte[] data)
Overridden for efficiency.
|
byte[] |
getData()
Get the data reference (not a copy)
|
int |
hashCode()
We assume the data has enough randomness in it, so use the first 4 bytes for speed.
|
abstract int |
length()
The legal length of the byte array in this data structure
|
void |
readBytes(InputStream in)
Sets the data.
|
void |
setData(byte[] data)
Sets the data.
|
String |
toBase64()
render the structure into modified base 64 notation
|
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.
|
readpublic SimpleDataStructure()
public SimpleDataStructure(byte[] data)
IllegalArgumentException - if data is not the legal number of bytes (but null is ok)public abstract int length()
public byte[] getData()
public void setData(byte[] data)
data - of correct length, or nullIllegalArgumentException - if data is not the legal number of bytes (but null is ok)RuntimeException - if data already set.public void readBytes(InputStream in) throws DataFormatException, IOException
in - the stream to readRuntimeException - if data already set.DataFormatException - if the data is improperly formattedIOException - if there was a problem reading the streampublic void writeBytes(OutputStream out) throws DataFormatException, IOException
DataStructureout - stream to write toDataFormatException - if the data was incomplete or not yet ready to be writtenIOException - if there was a problem writing to the streampublic String toBase64()
DataStructuretoBase64 in interface DataStructuretoBase64 in class DataStructureImplpublic void fromBase64(String data) throws DataFormatException
fromBase64 in interface DataStructurefromBase64 in class DataStructureImplDataFormatException - if decoded data is not the legal number of bytes or on decoding errorRuntimeException - if data already set.public Hash calculateHash()
DataStructurecalculateHash in interface DataStructurecalculateHash in class DataStructureImplpublic byte[] toByteArray()
toByteArray in interface DataStructuretoByteArray in class DataStructureImplpublic void fromByteArray(byte[] data)
throws DataFormatException
fromByteArray in interface DataStructurefromByteArray in class DataStructureImpldata - non-nullDataFormatException - if null or wrong lengthRuntimeException - if data already set.public int hashCode()