/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2000, 2015 Oracle and/or its affiliates. All rights reserved.
*
*/
package com.sleepycat.bind;
import com.sleepycat.db.DatabaseEntry;
/**
* A binding between a key or data entry and a key or data object.
*
* <p><em>WARNING:</em> Binding instances are typically shared by multiple
* threads and binding methods are called without any special synchronization.
* Therefore, bindings must be thread safe. In general no shared state should
* be used and any caching of computed values must be done with proper
* synchronization.</p>
*
* @author Mark Hayes
*/
public interface EntryBinding<E> {
/**
* Converts a entry buffer into an Object.
*
* @param entry is the source entry buffer.
*
* @return the resulting Object.
*/
E entryToObject(DatabaseEntry entry);
/**
* Converts an Object into a entry buffer.
*
* @param object is the source Object.
*
* @param entry is the destination entry buffer.
*/
void objectToEntry(E object, DatabaseEntry entry);
}