Package org.codehaus.stax2.ri.typed
Class NumberUtil
- java.lang.Object
-
- org.codehaus.stax2.ri.typed.NumberUtil
-
public final class NumberUtil extends java.lang.Object
Helper class that contains method for converting numeric values to and from String representations.
-
-
Field Summary
Fields Modifier and Type Field Description private static int
BILLION
private static byte
BYTE_1
private static byte
BYTE_2
private static byte
BYTE_HYPHEN
(package private) static char[]
FULL_TRIPLETS
(package private) static char[]
LEADING_TRIPLETS
static int
MAX_DOUBLE_CLEN
Maximum number of characters in a serialized double is 26 (at least for Sun JDK; 19 digits for mantissa, 3 for exponent, signs for mantissa and exponent, decimal point, 'E'): but let's pad it up a little bit just to play it safe.static int
MAX_FLOAT_CLEN
JDK serializes floats same way as doubles, so let's reserve as much spaceprivate static long
MAX_INT_AS_LONG
static int
MAX_INT_CLEN
Maximum number of characters in a serialized integer is 11; one for (minus) sign, and then up to 10 digitsstatic int
MAX_LONG_CLEN
Maximum number of characters in a serialized long is 21; one for (minus) sign, and then up to 20 digitsprivate static int
MILLION
private static long
MIN_INT_AS_LONG
Note: we'll increase value since Integer.MIN_VALUE can not actually be output using simple int-serialization mechanism (since its negation does not fit in 32-bit signed int range)private static char
NULL_CHAR
private static long
TEN_BILLION_L
private static long
THOUSAND_L
-
Constructor Summary
Constructors Constructor Description NumberUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static int
calcLongStrLength(long posValue)
Pre-conditions: posValue is positive, and larger than Integer.MAX_VALUE (about 2 billions).private static int
getAsciiBytes(java.lang.String str, byte[] buffer, int ptr)
private static int
getChars(java.lang.String str, char[] buffer, int ptr)
static int
writeDouble(double value, byte[] buffer, int offset)
static int
writeDouble(double value, char[] buffer, int offset)
static int
writeFloat(float value, byte[] buffer, int offset)
static int
writeFloat(float value, char[] buffer, int offset)
private static int
writeFullTriplet(int triplet, byte[] buffer, int offset)
private static int
writeFullTriplet(int triplet, char[] buffer, int offset)
static int
writeInt(int value, byte[] buffer, int offset)
static int
writeInt(int value, char[] buffer, int offset)
Note: caller must ensure that there is room for least 11 characters (leading sign, and up to 10 digits) in buffer passed.private static int
writeLeadingTriplet(int triplet, byte[] buffer, int offset)
private static int
writeLeadingTriplet(int triplet, char[] buffer, int offset)
static int
writeLong(long value, byte[] buffer, int offset)
static int
writeLong(long value, char[] buffer, int offset)
Note: caller must ensure that there is room for least 21 characters (leading sign, and up to 20 digits ) in buffer passed.
-
-
-
Field Detail
-
MAX_INT_CLEN
public static final int MAX_INT_CLEN
Maximum number of characters in a serialized integer is 11; one for (minus) sign, and then up to 10 digits- See Also:
- Constant Field Values
-
MAX_LONG_CLEN
public static final int MAX_LONG_CLEN
Maximum number of characters in a serialized long is 21; one for (minus) sign, and then up to 20 digits- See Also:
- Constant Field Values
-
MAX_DOUBLE_CLEN
public static final int MAX_DOUBLE_CLEN
Maximum number of characters in a serialized double is 26 (at least for Sun JDK; 19 digits for mantissa, 3 for exponent, signs for mantissa and exponent, decimal point, 'E'): but let's pad it up a little bit just to play it safe.- See Also:
- Constant Field Values
-
MAX_FLOAT_CLEN
public static final int MAX_FLOAT_CLEN
JDK serializes floats same way as doubles, so let's reserve as much space- See Also:
- Constant Field Values
-
NULL_CHAR
private static final char NULL_CHAR
- See Also:
- Constant Field Values
-
MILLION
private static final int MILLION
- See Also:
- Constant Field Values
-
BILLION
private static final int BILLION
- See Also:
- Constant Field Values
-
TEN_BILLION_L
private static final long TEN_BILLION_L
- See Also:
- Constant Field Values
-
THOUSAND_L
private static final long THOUSAND_L
- See Also:
- Constant Field Values
-
BYTE_HYPHEN
private static final byte BYTE_HYPHEN
- See Also:
- Constant Field Values
-
BYTE_1
private static final byte BYTE_1
- See Also:
- Constant Field Values
-
BYTE_2
private static final byte BYTE_2
- See Also:
- Constant Field Values
-
MIN_INT_AS_LONG
private static long MIN_INT_AS_LONG
Note: we'll increase value since Integer.MIN_VALUE can not actually be output using simple int-serialization mechanism (since its negation does not fit in 32-bit signed int range)
-
MAX_INT_AS_LONG
private static long MAX_INT_AS_LONG
-
LEADING_TRIPLETS
static final char[] LEADING_TRIPLETS
-
FULL_TRIPLETS
static final char[] FULL_TRIPLETS
-
-
Method Detail
-
writeInt
public static int writeInt(int value, char[] buffer, int offset)
Note: caller must ensure that there is room for least 11 characters (leading sign, and up to 10 digits) in buffer passed.
- Returns:
- Offset within buffer after outputting int
-
writeInt
public static int writeInt(int value, byte[] buffer, int offset)
-
writeLong
public static int writeLong(long value, char[] buffer, int offset)
Note: caller must ensure that there is room for least 21 characters (leading sign, and up to 20 digits ) in buffer passed.
- Returns:
- Offset within buffer after outputting int
-
writeLong
public static int writeLong(long value, byte[] buffer, int offset)
-
writeFloat
public static int writeFloat(float value, char[] buffer, int offset)
-
writeFloat
public static int writeFloat(float value, byte[] buffer, int offset)
-
writeDouble
public static int writeDouble(double value, char[] buffer, int offset)
-
writeDouble
public static int writeDouble(double value, byte[] buffer, int offset)
-
writeLeadingTriplet
private static int writeLeadingTriplet(int triplet, char[] buffer, int offset)
-
writeLeadingTriplet
private static int writeLeadingTriplet(int triplet, byte[] buffer, int offset)
-
writeFullTriplet
private static int writeFullTriplet(int triplet, char[] buffer, int offset)
-
writeFullTriplet
private static int writeFullTriplet(int triplet, byte[] buffer, int offset)
-
calcLongStrLength
private static int calcLongStrLength(long posValue)
Pre-conditions: posValue is positive, and larger than Integer.MAX_VALUE (about 2 billions).
-
getChars
private static int getChars(java.lang.String str, char[] buffer, int ptr)
-
getAsciiBytes
private static int getAsciiBytes(java.lang.String str, byte[] buffer, int ptr)
-
-