package com.sleepycat.bind.tuple;
import de.ovgu.cide.jakutil.*;
/**
* A marshalling interface implemented by key, data or entity classes that are
* represented as tuples.
* <p>
* Key classes implement this interface to marshal their key entry. Data or
* entity classes implement this interface to marshal their data entry.
* Implementations of this interface must have a public no arguments constructor
* so that they can be instantiated by a binding, prior to calling the{@link #unmarshalEntry} method.
* </p>
* <p>
* Note that implementing this interface is not necessary when the object is a
* Java simple type, for example: String, Integer, etc. These types can be used
* with built-in bindings returned by {@link TupleBinding#getPrimitiveBinding}.
* </p>
* @author Mark Hayes
* @see TupleTupleMarshalledBinding
*/
public interface MarshalledTupleEntry {
/**
* Construct the key or data tuple entry from the key or data object.
* @param dataOutputis the output tuple.
*/
void marshalEntry( TupleOutput dataOutput);
/**
* Construct the key or data object from the key or data tuple entry.
* @param dataInputis the input tuple.
*/
void unmarshalEntry( TupleInput dataInput);
}