KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sleepycat > bind > tuple > SortedFloatBinding


1 /*-
2  * See the file LICENSE for redistribution information.
3  *
4  * Copyright (c) 2000,2006 Oracle. All rights reserved.
5  *
6  * $Id: SortedFloatBinding.java,v 1.3 2006/10/30 21:14:08 bostic Exp $
7  */

8
9 package com.sleepycat.bind.tuple;
10
11 import com.sleepycat.je.DatabaseEntry;
12
13 /**
14  * A concrete <code>TupleBinding</code> for a <code>Float</code> primitive
15  * wrapper or a <code>float</code> primitive.
16  *
17  * <p>This class produces byte array values that by default (without a custom
18  * comparator) sort correctly, including sorting of negative values.
19  * Therefore, this class should normally be used instead of {@link
20  * FloatBinding} which does not by default support sorting of negative values.
21  * Please note that:</p>
22  * <ul>
23  * <li>The byte array (stored) formats used by {@link FloatBinding} and
24  * {@link SortedFloatBinding} are different and incompatible. They are not
25  * interchangable once data has been stored.</li>
26  * <li>An instance of {@link FloatBinding}, not {@link SortedFloatBinding}, is
27  * returned by {@link TupleBinding#getPrimitiveBinding} method. Therefore, to
28  * use {@link SortedFloatBinding}, {@link TupleBinding#getPrimitiveBinding}
29  * should not be called.</li>
30  * </ul>
31  *
32  * <p>There are two ways to use this class:</p>
33  * <ol>
34  * <li>When using the {@link com.sleepycat.je} package directly, the static
35  * methods in this class can be used to convert between primitive values and
36  * {@link DatabaseEntry} objects.</li>
37  * <li>When using the {@link com.sleepycat.collections} package, an instance of
38  * this class can be used with any stored collection.</li>
39  * </ol>
40  */

41 public class SortedFloatBinding extends TupleBinding {
42
43     /* javadoc is inherited */
44     public Object JavaDoc entryToObject(TupleInput input) {
45
46         return new Float JavaDoc(input.readSortedFloat());
47     }
48
49     /* javadoc is inherited */
50     public void objectToEntry(Object JavaDoc object, TupleOutput output) {
51
52         output.writeSortedFloat(((Number JavaDoc) object).floatValue());
53     }
54
55     /* javadoc is inherited */
56     protected TupleOutput getTupleOutput(Object JavaDoc object) {
57
58         return FloatBinding.sizedOutput();
59     }
60
61     /**
62      * Converts an entry buffer into a simple <code>float</code> value.
63      *
64      * @param entry is the source entry buffer.
65      *
66      * @return the resulting value.
67      */

68     public static float entryToFloat(DatabaseEntry entry) {
69
70         return entryToInput(entry).readSortedFloat();
71     }
72
73     /**
74      * Converts a simple <code>float</code> value into an entry buffer.
75      *
76      * @param val is the source value.
77      *
78      * @param entry is the destination entry buffer.
79      */

80     public static void floatToEntry(float val, DatabaseEntry entry) {
81
82         outputToEntry(FloatBinding.sizedOutput().writeSortedFloat(val), entry);
83     }
84 }
85
Popular Tags