Class BigDecimalParser
BigDecimal for REALLY big values (over 500 characters).
This class is not meant to be used directly. It is designed to be used by Jackson JSON parsers (and parsers for other Jackson supported data formats). The parsers check for invalid characters and the length of the number. Without these checks, this parser is susceptible to performing badly with invalid inputs. If you need to parse numbers directly, please use JavaBigDecimalParser in fastdoubleparser instead.
Based on ideas from this this git commit.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final intprivate static final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static String_generateExceptionMessage(String valueToReport, String desc) private static String_getValueDesc(char[] array, int offset, int len) private static String_getValueDesc(String fullValue) private static NumberFormatException_parseFailure(Exception e, char[] array, int offset, int len) private static NumberFormatException_parseFailure(Exception e, String fullValue) static BigDecimalparse(char[] chars) Internal Jackson method.static BigDecimalparse(char[] chars, int off, int len) Internal Jackson method.static BigDecimalInternal Jackson method.static BigDecimalparseWithFastParser(char[] ch, int off, int len) Internal Jackson method.static BigDecimalparseWithFastParser(String valueStr) Internal Jackson method.
-
Field Details
-
MAX_CHARS_TO_REPORT
static final int MAX_CHARS_TO_REPORT- See Also:
-
SIZE_FOR_SWITCH_TO_FASTDOUBLEPARSER
private static final int SIZE_FOR_SWITCH_TO_FASTDOUBLEPARSER- See Also:
-
-
Constructor Details
-
BigDecimalParser
private BigDecimalParser()
-
-
Method Details
-
parse
Internal Jackson method. Please do not use.Note: Caller MUST pre-validate that given String represents a valid representation of
BigDecimalvalue: parsers injackson-coredo that; other code must do the same.- Parameters:
valueStr- Value to parse- Returns:
- BigDecimal value
- Throws:
NumberFormatException- for decoding failures
-
parse
Internal Jackson method. Please do not use.Note: Caller MUST pre-validate that given String represents a valid representation of
BigDecimalvalue: parsers injackson-coredo that; other code must do the same.- Parameters:
chars- Buffer that contains value to parseoff- Offset of the first character to decodelen- Length of value to parse in buffer- Returns:
- BigDecimal value
- Throws:
NumberFormatException- for decoding failures
-
parse
Internal Jackson method. Please do not use.Note: Caller MUST pre-validate that given String represents a valid representation of
BigDecimalvalue: parsers injackson-coredo that; other code must do the same.- Parameters:
chars- Value to parse- Returns:
- BigDecimal value
- Throws:
NumberFormatException- for decoding failures
-
parseWithFastParser
Internal Jackson method. Please do not use.Note: Caller MUST pre-validate that given String represents a valid representation of
BigDecimalvalue: parsers injackson-coredo that; other code must do the same.- Parameters:
valueStr- Value to parse- Returns:
- BigDecimal value
- Throws:
NumberFormatException- for decoding failures
-
parseWithFastParser
Internal Jackson method. Please do not use.Note: Caller MUST pre-validate that given String represents a valid representation of
BigDecimalvalue: parsers injackson-coredo that; other code must do the same.- Returns:
- BigDecimal value
- Throws:
NumberFormatException- for decoding failures
-
_parseFailure
-
_parseFailure
-
_getValueDesc
-
_getValueDesc
-
_generateExceptionMessage
-