Package org.supercsv.cellprocessor
Class ParseBigDecimal
java.lang.Object
org.supercsv.cellprocessor.CellProcessorAdaptor
org.supercsv.cellprocessor.ParseBigDecimal
- All Implemented Interfaces:
CellProcessor
,StringCellProcessor
Convert a String to a BigDecimal. It uses the String constructor of BigDecimal (new BigDecimal("0.1")) as it
yields predictable results (see
BigDecimal
).
If the data uses a character other than "." as a decimal separator (Germany uses "," for example), then use the constructor that accepts a DecimalFormatSymbols object, as it will convert the character to a "." before creating the BigDecimal. Likewise if the data contains a grouping separator (Germany uses "." for example) then supplying a DecimalFormatSymbols object will allow grouping separators to be removed before parsing.
- Since:
- 1.30
-
Field Summary
FieldsFields inherited from class org.supercsv.cellprocessor.CellProcessorAdaptor
next
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a new ParseBigDecimal processor, which converts a String to a BigDecimal.ParseBigDecimal
(DecimalFormatSymbols symbols) Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal using the supplied DecimalFormatSymbols object to convert any decimal separator to a "." before creating the BigDecimal.ParseBigDecimal
(DecimalFormatSymbols symbols, CellProcessor next) Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal using the supplied DecimalFormatSymbols object to convert any decimal separator to a "." before creating the BigDecimal, then calls the next processor in the chain.ParseBigDecimal
(CellProcessor next) Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal then calls the next processor in the chain. -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
checkPreconditions
(DecimalFormatSymbols symbols) Checks the preconditions for creating a new ParseBigDecimal processor.execute
(Object value, CsvContext context) This method is invoked by the framework when the processor needs to process data or check constraints.private static String
fixSymbols
(String s, DecimalFormatSymbols symbols) Fixes the symbols in the input String (currently only decimal separator and grouping separator) so that the String can be parsed as a BigDecimal.Methods inherited from class org.supercsv.cellprocessor.CellProcessorAdaptor
toString, validateInputNotNull
-
Field Details
-
DEFAULT_DECIMAL_SEPARATOR
private static final char DEFAULT_DECIMAL_SEPARATOR- See Also:
-
symbols
-
-
Constructor Details
-
ParseBigDecimal
public ParseBigDecimal()Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal. -
ParseBigDecimal
Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal using the supplied DecimalFormatSymbols object to convert any decimal separator to a "." before creating the BigDecimal.- Parameters:
symbols
- the decimal format symbols, containing the decimal separator- Throws:
NullPointerException
- if symbols is null
-
ParseBigDecimal
Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal then calls the next processor in the chain.- Parameters:
next
- the next processor in the chain- Throws:
NullPointerException
- if next is null
-
ParseBigDecimal
Constructs a new ParseBigDecimal processor, which converts a String to a BigDecimal using the supplied DecimalFormatSymbols object to convert any decimal separator to a "." before creating the BigDecimal, then calls the next processor in the chain.- Parameters:
symbols
- the decimal format symbols, containing the decimal separatornext
- the next processor in the chain- Throws:
NullPointerException
- if symbols or next is null
-
-
Method Details
-
checkPreconditions
Checks the preconditions for creating a new ParseBigDecimal processor.- Parameters:
symbols
- the decimal format symbols, containing the decimal separator- Throws:
NullPointerException
- if symbols is null
-
execute
This method is invoked by the framework when the processor needs to process data or check constraints.- Specified by:
execute
in interfaceCellProcessor
- Parameters:
value
- the value to be processedcontext
- the CSV context- Returns:
- the result of cell processor execution
- Throws:
SuperCsvCellProcessorException
- if value is null, isn't a String, or can't be parsed as a BigDecimal
-
fixSymbols
Fixes the symbols in the input String (currently only decimal separator and grouping separator) so that the String can be parsed as a BigDecimal.- Parameters:
s
- the String to fixsymbols
- the decimal format symbols- Returns:
- the fixed String
-