Package org.codehaus.stax2.ri.typed
Class NumberUtil
- java.lang.Object
-
- org.codehaus.stax2.ri.typed.NumberUtil
-
public final class NumberUtil extends java.lang.ObjectHelper class that contains method for converting numeric values to and from String representations.
-
-
Field Summary
Fields Modifier and Type Field Description private static intBILLIONprivate static byteBYTE_1private static byteBYTE_2private static byteBYTE_HYPHEN(package private) static char[]FULL_TRIPLETS(package private) static char[]LEADING_TRIPLETSstatic intMAX_DOUBLE_CLENMaximum 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 intMAX_FLOAT_CLENJDK serializes floats same way as doubles, so let's reserve as much spaceprivate static longMAX_INT_AS_LONGstatic intMAX_INT_CLENMaximum number of characters in a serialized integer is 11; one for (minus) sign, and then up to 10 digitsstatic intMAX_LONG_CLENMaximum number of characters in a serialized long is 21; one for (minus) sign, and then up to 20 digitsprivate static intMILLIONprivate static longMIN_INT_AS_LONGNote: 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 charNULL_CHARprivate static longTEN_BILLION_Lprivate static longTHOUSAND_L
-
Constructor Summary
Constructors Constructor Description NumberUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static intcalcLongStrLength(long posValue)Pre-conditions: posValue is positive, and larger than Integer.MAX_VALUE (about 2 billions).private static intgetAsciiBytes(java.lang.String str, byte[] buffer, int ptr)private static intgetChars(java.lang.String str, char[] buffer, int ptr)static intwriteDouble(double value, byte[] buffer, int offset)static intwriteDouble(double value, char[] buffer, int offset)static intwriteFloat(float value, byte[] buffer, int offset)static intwriteFloat(float value, char[] buffer, int offset)private static intwriteFullTriplet(int triplet, byte[] buffer, int offset)private static intwriteFullTriplet(int triplet, char[] buffer, int offset)static intwriteInt(int value, byte[] buffer, int offset)static intwriteInt(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 intwriteLeadingTriplet(int triplet, byte[] buffer, int offset)private static intwriteLeadingTriplet(int triplet, char[] buffer, int offset)static intwriteLong(long value, byte[] buffer, int offset)static intwriteLong(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)
-
-