net.i2p.data

## Class DataStructureImpl

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

All Implemented Interfaces:
  DataStructure

Direct Known Subclasses:
  AbuseReason, AbuseSeverity, Address, Certificate, DatabaseEntry, DateAndFlags, DeliveryInstructions, GarlicClove, I2CPMessageImpl, I2NPMessageImpl, KeysAndCert, Lease, LeaseSetKeys, MessageId, Payload, RouterAddress, SessionConfig, SessionId, SimpleDataStructure, TunnelId

    public abstract class DataStructureImpl
    extends Object
    implements DataStructure

Base implementation of all data structures

Author:
  jrandom

### Constructor Summary

Constructors
Constructor and Description
`DataStructureImpl()`

### Method Summary

Methods
`Hash` `calculateHash()` Calculate the SHA256 value of this object (useful for a few scenarios)
`void` `fromBase64(String data)` Load the structure from the base 64 encoded data provided
`void` `fromByteArray(byte[] data)`
`protected int` `read(InputStream in, byte[] target)` Repeated reads until the buffer is full or IOException is thrown
`String` `toBase64()` render the structure into modified base 64 notation
`byte[]` `toByteArray()`

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.i2p.data.DataStructure

`readBytes, writeBytes`

### Constructor Detail

#### DataStructureImpl

    public DataStructureImpl()

### Method Detail

#### toBase64

    public String toBase64()

Description copied from interface: `DataStructure`
render the structure into modified base 64 notation

Specified by:
  `toBase64` in interface `DataStructure`
Returns:
  null on error

#### fromBase64

    public void fromBase64(String data)
                    throws DataFormatException

Description copied from interface: `DataStructure`
Load the structure from the base 64 encoded data provided

Specified by:
  `fromBase64` in interface `DataStructure`
Throws:
  `DataFormatException`

#### calculateHash

    public Hash calculateHash()

Description copied from interface: `DataStructure`
Calculate the SHA256 value of this object (useful for a few scenarios)

Specified by:
  `calculateHash` in interface `DataStructure`
Returns:
  SHA256 hash, or null if there were problems (data format or io errors)

#### toByteArray

    public byte[] toByteArray()

Specified by:
  `toByteArray` in interface `DataStructure`

#### fromByteArray

    public void fromByteArray(byte[] data)
                       throws DataFormatException

Specified by:
  `fromByteArray` in interface `DataStructure`
Throws:
  `DataFormatException`

#### read

    protected int read(InputStream in,
           byte[] target)
                throws IOException

Repeated reads until the buffer is full or IOException is thrown

Returns:
  number of bytes read (should always equal target.length)
Throws:
  `IOException`