00001 /*- 00002 * See the file LICENSE for redistribution information. 00003 * 00004 * Copyright (c) 2000-2005 00005 * Sleepycat Software. All rights reserved. 00006 * 00007 * $Id: DoubleBinding.java,v 12.2 2005/08/01 20:25:13 mark Exp $ 00008 */ 00009 00010 package com.sleepycat.bind.tuple; 00011 00012 import com.sleepycat.db.DatabaseEntry; 00013 00029 public class DoubleBinding extends TupleBinding { 00030 00031 private static final int DOUBLE_SIZE = 8; 00032 00033 // javadoc is inherited 00034 public Object entryToObject(TupleInput input) { 00035 00036 return new Double(input.readDouble()); 00037 } 00038 00039 // javadoc is inherited 00040 public void objectToEntry(Object object, TupleOutput output) { 00041 00042 output.writeDouble(((Number) object).doubleValue()); 00043 } 00044 00045 // javadoc is inherited 00046 protected TupleOutput getTupleOutput(Object object) { 00047 00048 return sizedOutput(); 00049 } 00050 00058 public static double entryToDouble(DatabaseEntry entry) { 00059 00060 return entryToInput(entry).readDouble(); 00061 } 00062 00070 public static void doubleToEntry(double val, DatabaseEntry entry) { 00071 00072 outputToEntry(sizedOutput().writeDouble(val), entry); 00073 } 00074 00079 private static TupleOutput sizedOutput() { 00080 00081 return new TupleOutput(new byte[DOUBLE_SIZE]); 00082 } 00083 }