TupleSerialMarshalledBinding (Oracle - Berkeley DB Java Edition API)
Date: 2014-12-16

com.sleepycat.bind.serial

## Class TupleSerialMarshalledBinding<E extends MarshalledTupleKeyEntity>

- java.lang.Object
- - com.sleepycat.bind.tuple.TupleBase
  - - com.sleepycat.bind.serial.TupleSerialBinding<E,E>
    - - com.sleepycat.bind.serial.TupleSerialMarshalledBinding<E>

- All Implemented Interfaces:
    EntityBinding<E>

      public class TupleSerialMarshalledBinding<E extends MarshalledTupleKeyEntity>
      extends TupleSerialBinding<E,E>

  A concrete `TupleSerialBinding` that delegates to the `MarshalledTupleKeyEntity` interface of the entity class.

  The `MarshalledTupleKeyEntity` interface must be implemented by the entity class to convert between the key/data entry and entity object.

  The binding is "tricky" in that it uses the entity class for both the stored data entry and the combined entity object. To do this, the entity's key field(s) are transient and are set by the binding after the data object has been deserialized. This avoids the use of a "data" class completely.

  Author:
    Mark Hayes
  See Also:
    `MarshalledTupleKeyEntity`, Class Evolution

- - ### Field Summary

    - ### Fields inherited from class com.sleepycat.bind.serial.TupleSerialBinding

      `dataBinding`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TupleSerialMarshalledBinding(ClassCatalog classCatalog, Class<E> baseClass)` Creates a tuple-serial marshalled binding object.
    `TupleSerialMarshalledBinding(SerialBinding<E> dataBinding)` Creates a tuple-serial marshalled binding object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `E` | `entryToObject(TupleInput tupleInput, E javaInput)` Constructs an entity object from `TupleInput` key entry and deserialized data entry objects.
    `E` | `objectToData(E object)` Extracts a data object from an entity object.
    `void` | `objectToKey(E object, TupleOutput output)` Extracts a key tuple from an entity object.

    - ### Methods inherited from class com.sleepycat.bind.serial.TupleSerialBinding

      `entryToObject, objectToData, objectToKey`

    - ### Methods inherited from class com.sleepycat.bind.tuple.TupleBase

      `entryToInput, getTupleBufferSize, getTupleOutput, inputToEntry, newOutput, newOutput, outputToEntry, setTupleBufferSize`

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

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

- - ### Constructor Detail

    - #### TupleSerialMarshalledBinding

          public TupleSerialMarshalledBinding(ClassCatalog classCatalog,
                                      Class<E> baseClass)

      Creates a tuple-serial marshalled binding object.
      Parameters:
        `classCatalog` - is the catalog to hold shared class information and for a database should be a `StoredClassCatalog`.
        `baseClass` - is the base class for serialized objects stored using this binding -- all objects using this binding must be an instance of this class.

    - #### TupleSerialMarshalledBinding

          public TupleSerialMarshalledBinding(SerialBinding<E> dataBinding)

      Creates a tuple-serial marshalled binding object.
      Parameters:
        `dataBinding` - is the binding used for serializing and deserializing the entity object.

  - ### Method Detail

    - #### entryToObject

          public E entryToObject(TupleInput tupleInput,
                        E javaInput)

      Description copied from class: `TupleSerialBinding`
      Constructs an entity object from `TupleInput` key entry and deserialized data entry objects.
      Specified by:
        `entryToObject` in class `TupleSerialBinding<E extends MarshalledTupleKeyEntity,E extends MarshalledTupleKeyEntity>`
      Parameters:
        `tupleInput` - is the `TupleInput` key entry object.
        `javaInput` - is the deserialized data entry object.
      Returns:
        the entity object constructed from the key and data.

    - #### objectToKey

          public void objectToKey(E object,
                         TupleOutput output)

      Description copied from class: `TupleSerialBinding`
      Extracts a key tuple from an entity object.
      Specified by:
        `objectToKey` in class `TupleSerialBinding<E extends MarshalledTupleKeyEntity,E extends MarshalledTupleKeyEntity>`
      Parameters:
        `object` - is the entity object.
        `output` - is the `TupleOutput` to which the key should be written.

    - #### objectToData

          public E objectToData(E object)

      Description copied from class: `TupleSerialBinding`
      Extracts a data object from an entity object.
      Specified by:
        `objectToData` in class `TupleSerialBinding<E extends MarshalledTupleKeyEntity,E extends MarshalledTupleKeyEntity>`
      Parameters:
        `object` - is the entity object.
      Returns:
        the deserialized data object.

Copyright (c) 2004, 2014 Oracle and/or its affiliates. All rights reserved.