com.sleepycat.bind.tuple.IntegerBinding Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of je Show documentation
Show all versions of je Show documentation
Berkley Database Java Edition - build and runtime support.
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
*
*/
package com.sleepycat.bind.tuple;
import com.sleepycat.je.DatabaseEntry;
/**
* A concrete TupleBinding
for a Integer
primitive
* wrapper or an int
primitive.
*
* There are two ways to use this class:
*
* - When using the {@link com.sleepycat.je} package directly, the static
* methods in this class can be used to convert between primitive values and
* {@link DatabaseEntry} objects.
* - When using the {@link com.sleepycat.collections} package, an instance of
* this class can be used with any stored collection. The easiest way to
* obtain a binding instance is with the {@link
* TupleBinding#getPrimitiveBinding} method.
*
*
* @see Integer Formats
*/
public class IntegerBinding extends TupleBinding {
private static final int INT_SIZE = 4;
// javadoc is inherited
public Integer entryToObject(TupleInput input) {
return input.readInt();
}
// javadoc is inherited
public void objectToEntry(Integer object, TupleOutput output) {
output.writeInt(object);
}
// javadoc is inherited
protected TupleOutput getTupleOutput(Integer object) {
return sizedOutput();
}
/**
* Converts an entry buffer into a simple int
value.
*
* @param entry is the source entry buffer.
*
* @return the resulting value.
*/
public static int entryToInt(DatabaseEntry entry) {
return entryToInput(entry).readInt();
}
/**
* Converts a simple int
value into an entry buffer.
*
* @param val is the source value.
*
* @param entry is the destination entry buffer.
*/
public static void intToEntry(int val, DatabaseEntry entry) {
outputToEntry(sizedOutput().writeInt(val), entry);
}
/**
* Returns a tuple output object of the exact size needed, to avoid
* wasting space when a single primitive is output.
*/
private static TupleOutput sizedOutput() {
return new TupleOutput(new byte[INT_SIZE]);
}
}