org.springframework.format.number
Class CurrencyFormatter

java.lang.Object
  extended by org.springframework.format.number.AbstractNumberFormatter
      extended by org.springframework.format.number.CurrencyFormatter
All Implemented Interfaces:
Formatter<Number>, Parser<Number>, Printer<Number>

public class CurrencyFormatter
extends AbstractNumberFormatter

A BigDecimal formatter for currency values.

Delegates to NumberFormat.getCurrencyInstance(Locale). Configures BigDecimal parsing so there is no loss of precision. Can apply a specified RoundingMode to parsed values.

Since:
3.0
Author:
Keith Donald, Juergen Hoeller
See Also:
AbstractNumberFormatter.setLenient(boolean), setRoundingMode(java.math.RoundingMode)

Constructor Summary
CurrencyFormatter()
           
 
Method Summary
protected  NumberFormat getNumberFormat(Locale locale)
          Obtain a concrete NumberFormat for the specified locale.
 BigDecimal parse(String text, Locale locale)
          Parse a text String to produce a T.
 void setCurrency(Currency currency)
          Specify the currency, if known.
 void setFractionDigits(int fractionDigits)
          Specify the desired number of fraction digits.
 void setRoundingMode(RoundingMode roundingMode)
          Specify the rounding mode to use for decimal parsing.
 
Methods inherited from class org.springframework.format.number.AbstractNumberFormatter
print, setLenient
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CurrencyFormatter

public CurrencyFormatter()
Method Detail

setFractionDigits

public void setFractionDigits(int fractionDigits)
Specify the desired number of fraction digits. Default is 2.


setRoundingMode

public void setRoundingMode(RoundingMode roundingMode)
Specify the rounding mode to use for decimal parsing. Default is RoundingMode.UNNECESSARY.


setCurrency

public void setCurrency(Currency currency)
Specify the currency, if known.


parse

public BigDecimal parse(String text,
                        Locale locale)
                 throws ParseException
Description copied from interface: Parser
Parse a text String to produce a T.

Specified by:
parse in interface Parser<Number>
Overrides:
parse in class AbstractNumberFormatter
Parameters:
text - the text string
locale - the current user locale
Returns:
an instance of T
Throws:
ParseException - when a parse exception occurs in a java.text parsing library

getNumberFormat

protected NumberFormat getNumberFormat(Locale locale)
Description copied from class: AbstractNumberFormatter
Obtain a concrete NumberFormat for the specified locale.

Specified by:
getNumberFormat in class AbstractNumberFormatter
Parameters:
locale - the current locale
Returns:
the NumberFormat instance (never null)