net.i2p.data

## Class DataStructureImpl

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

- All Implemented Interfaces:
    Serializable, DataStructure
  Direct Known Subclasses:
    AbuseReason, AbuseSeverity, Certificate, DatabaseEntry, DateAndFlags, DeliveryInstructions, GarlicClove, KeysAndCert, Lease, Payload, RouterAddress, SessionConfig

      public abstract class DataStructureImpl
      extends Object
      implements DataStructure, Serializable

  Base implementation of all data structures
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DataStructureImpl()`

  - ### Method Summary

    All Methods Instance Methods Concrete 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 provided base64 string.
    `void` | `fromByteArray(byte[] data)` Load's structure from the data provided Warning - many classes will throw IllegalStateException if data is already set.
    `protected int` | `read(InputStream in, byte[] target)` Repeated reads until buffer is full or IOException is thrown
    `String` | `toBase64()` render the structure into modified base 64 notation
    `byte[]` | `toByteArray()` Convert the structure to a byte array.

    - ### 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

    - #### 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)

    - #### fromBase64

          public void fromBase64(String data)
                          throws DataFormatException

      Description copied from interface: `DataStructure`
      Load the structure from the provided base64 string. Warning - many classes will throw IllegalStateException if data is already set. Warning - many classes will throw IllegalArgumentException if data is the wrong size.
      Specified by:
        `fromBase64` in interface `DataStructure`
      Parameters:
        `data` - base64 encoded string to load from
      Throws:
        `DataFormatException` - if the data format is invalid

    - #### fromByteArray

          public void fromByteArray(byte[] data)
                             throws DataFormatException

      Description copied from interface: `DataStructure`
      Load's structure from the data provided Warning - many classes will throw IllegalStateException if data is already set. Warning - many classes will throw IllegalArgumentException if data is the wrong size.
      Specified by:
        `fromByteArray` in interface `DataStructure`
      Parameters:
        `data` - byte array to load from
      Throws:
        `DataFormatException` - if the data format is invalid

    - #### read

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

      Repeated reads until buffer is full or IOException is thrown
      Parameters:
        `in` - input stream to read from
        `target` - byte array to read into
      Returns:
        number of bytes read (should always equal target.length)
      Throws:
        `IOException` - if an I/O error occurs

    - #### 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

    - #### toByteArray

          public byte[] toByteArray()

      Description copied from interface: `DataStructure`
      Convert the structure to a byte array.
      Specified by:
        `toByteArray` in interface `DataStructure`
      Returns:
        may be null if data is not set