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.

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, java.lang.Class<E> baseClass)` Creates a tuple-serial marshalled binding object.
`TupleSerialMarshalledBinding(SerialBinding<E> dataBinding)` Creates a tuple-serial marshalled binding object.

### Method Summary

All Methods Instance Methods Concrete Methods
`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,
                                        java.lang.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.