package com.sleepycat.bind; import com.sleepycat.je.DatabaseEntry; import de.ovgu.cide.jakutil.*; /** * A pass-through <code>EntryBinding</code> that uses the entry's byte array * as the key or data object. * @author Mark Hayes */ public class ByteArrayBinding implements EntryBinding { private static byte[] ZERO_LENGTH_BYTE_ARRAY=new byte[0]; /** * Creates a byte array binding. */ public ByteArrayBinding(){ } public Object entryToObject( DatabaseEntry entry){ int len=entry.getSize(); if (len == 0) { return ZERO_LENGTH_BYTE_ARRAY; } else { byte[] bytes=new byte[len]; System.arraycopy(entry.getData(),entry.getOffset(),bytes,0,bytes.length); return bytes; } } public void objectToEntry( Object object, DatabaseEntry entry){ byte[] bytes=(byte[])object; entry.setData(bytes,0,bytes.length); } }