Package org.supercsv.cellprocessor
Class FmtNumber
- java.lang.Object
-
- org.supercsv.cellprocessor.CellProcessorAdaptor
-
- org.supercsv.cellprocessor.FmtNumber
-
- All Implemented Interfaces:
CellProcessor
,DoubleCellProcessor
,LongCellProcessor
public class FmtNumber extends CellProcessorAdaptor implements DoubleCellProcessor, LongCellProcessor
Converts a double into a formatted string using theDecimalFormat
class and the default locale. This is useful, when you need to show numbers with a specific number of digits.Please be aware that the constructors that use DecimalFormat are not thread-safe, so it is generally better to use the constructors that accept a date format String.
In the format string, the following characters are defined as :
0 - means Digit # - means Digit, zero shows as absent (works only as zero padding on the right hand side of the number) . - means Decimal separator or monetary decimal separator - - means Minus sign , - means Grouping separator
If you want to convert from a String to a decimal, use theParseDouble
orParseBigDecimal
processor.- Since:
- 1.50
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
decimalFormat
the decimal format stringprivate java.text.DecimalFormat
formatter
the decimal format object - not thread safe-
Fields inherited from class org.supercsv.cellprocessor.CellProcessorAdaptor
next
-
-
Constructor Summary
Constructors Constructor Description FmtNumber(java.lang.String decimalFormat)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format String.FmtNumber(java.lang.String decimalFormat, StringCellProcessor next)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format String, then calls the next processor in the chain.FmtNumber(java.text.DecimalFormat formatter)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format.FmtNumber(java.text.DecimalFormat formatter, StringCellProcessor next)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format, then calls the next processor in the chain.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
checkPreconditions(java.lang.String dateFormat)
Checks the preconditions for creating a new FmtNumber processor with a date format String.private static void
checkPreconditions(java.text.DecimalFormat formatter)
Checks the preconditions for creating a new FmtNumber processor with a DecimalFormat.java.lang.Object
execute(java.lang.Object value, CsvContext context)
This method is invoked by the framework when the processor needs to process data or check constraints.-
Methods inherited from class org.supercsv.cellprocessor.CellProcessorAdaptor
toString, validateInputNotNull
-
-
-
-
Constructor Detail
-
FmtNumber
public FmtNumber(java.lang.String decimalFormat)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format String. This constructor is thread-safe.- Parameters:
decimalFormat
- the decimal format String (seeDecimalFormat
)- Throws:
java.lang.NullPointerException
- if decimalFormat is null
-
FmtNumber
public FmtNumber(java.lang.String decimalFormat, StringCellProcessor next)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format String, then calls the next processor in the chain. This constructor is thread-safe.- Parameters:
decimalFormat
- the decimal format String (seeDecimalFormat
)next
- the next processor in the chain- Throws:
java.lang.NullPointerException
- if decimalFormat or next is null
-
FmtNumber
public FmtNumber(java.text.DecimalFormat formatter)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format. This constructor is not thread-safe.- Parameters:
formatter
- the DecimalFormat- Throws:
java.lang.NullPointerException
- if formatter is null
-
FmtNumber
public FmtNumber(java.text.DecimalFormat formatter, StringCellProcessor next)
Constructs a new FmtNumber processor, which converts a double into a formatted string using the supplied decimal format, then calls the next processor in the chain. This constructor is not thread-safe.- Parameters:
formatter
- the DecimalFormatnext
- the next processor in the chain- Throws:
java.lang.NullPointerException
- if formatter or next is null
-
-
Method Detail
-
checkPreconditions
private static void checkPreconditions(java.lang.String dateFormat)
Checks the preconditions for creating a new FmtNumber processor with a date format String.- Parameters:
dateFormat
- the date format String- Throws:
java.lang.NullPointerException
- if dateFormat is null
-
checkPreconditions
private static void checkPreconditions(java.text.DecimalFormat formatter)
Checks the preconditions for creating a new FmtNumber processor with a DecimalFormat.- Parameters:
formatter
- the DecimalFormat- Throws:
java.lang.NullPointerException
- if formatter is null
-
execute
public java.lang.Object execute(java.lang.Object value, CsvContext context)
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 or not a Number, or if an invalid decimalFormat String was supplied
-
-