/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2000, 2015 Oracle and/or its affiliates. All rights reserved.
*
*/
package com.sleepycat.bind.tuple;
/**
* 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 dataOutput is the output tuple.
*/
void marshalEntry(TupleOutput dataOutput);
/**
* Construct the key or data object from the key or data tuple entry.
*
* @param dataInput is the input tuple.
*/
void unmarshalEntry(TupleInput dataInput);
}