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
    Modifier and Type | Method and Description
    --- | ---
    `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`