org.joda.money.format
Class MoneyFormatter

java.lang.Object
  extended by org.joda.money.format.MoneyFormatter
All Implemented Interfaces:
Serializable

public final class MoneyFormatter
extends Object
implements Serializable

Formats instances of money to and from a String.

Instances of MoneyFormatter can be created by MoneyFormatterBuilder.

This class is immutable and thread-safe.

See Also:
Serialized Form

Method Summary
 Locale getLocale()
          Gets the locale to use.
 boolean isParser()
          Checks whether this formatter can parse.
 boolean isPrinter()
          Checks whether this formatter can print.
 MoneyParseContext parse(CharSequence text, int startIndex)
          Parses the text extracting monetary information.
 BigMoney parseBigMoney(CharSequence text)
          Fully parses the text into a BigMoney.
 Money parseMoney(CharSequence text)
          Fully parses the text into a Money requiring that the parsed amount has the correct number of decimal places.
 void print(Appendable appendable, BigMoneyProvider moneyProvider)
          Prints a monetary value to an Appendable converting any IOException to a MoneyFormatException.
 String print(BigMoneyProvider moneyProvider)
          Prints a monetary value to a String.
 void printIO(Appendable appendable, BigMoneyProvider moneyProvider)
          Prints a monetary value to an Appendable potentially throwing an IOException.
 String toString()
          Gets a string summary of the formatter.
 MoneyFormatter withLocale(Locale locale)
          Returns a copy of this instance with the specified locale.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getLocale

public Locale getLocale()
Gets the locale to use.

Returns:
the locale, never null

withLocale

public MoneyFormatter withLocale(Locale locale)
Returns a copy of this instance with the specified locale.

Changing the locale may change the style of output depending on how the formatter has been configured.

Parameters:
locale - the locale, not null
Returns:
the new instance, never null

isPrinter

public boolean isPrinter()
Checks whether this formatter can print.

If the formatter cannot print, an UnsupportedOperationException will be thrown from the print methods.

Returns:
true if the formatter can print

isParser

public boolean isParser()
Checks whether this formatter can parse.

If the formatter cannot parse, an UnsupportedOperationException will be thrown from the print methods.

Returns:
true if the formatter can parse

print

public String print(BigMoneyProvider moneyProvider)
Prints a monetary value to a String.

Parameters:
moneyProvider - the money to print, not null
Returns:
the string printed using the settings of this formatter
Throws:
UnsupportedOperationException - if the formatter is unable to print
MoneyFormatException - if there is a problem while printing

print

public void print(Appendable appendable,
                  BigMoneyProvider moneyProvider)
Prints a monetary value to an Appendable converting any IOException to a MoneyFormatException.

Example implementations of Appendable are StringBuilder, StringBuffer or Writer. Note that StringBuilder and StringBuffer never throw an IOException.

Parameters:
appendable - the appendable to add to, not null
moneyProvider - the money to print, not null
Throws:
UnsupportedOperationException - if the formatter is unable to print
MoneyFormatException - if there is a problem while printing

printIO

public void printIO(Appendable appendable,
                    BigMoneyProvider moneyProvider)
             throws IOException
Prints a monetary value to an Appendable potentially throwing an IOException.

Example implementations of Appendable are StringBuilder, StringBuffer or Writer. Note that StringBuilder and StringBuffer never throw an IOException.

Parameters:
appendable - the appendable to add to, not null
moneyProvider - the money to print, not null
Throws:
UnsupportedOperationException - if the formatter is unable to print
MoneyFormatException - if there is a problem while printing
IOException - if an IO error occurs

parseBigMoney

public BigMoney parseBigMoney(CharSequence text)
Fully parses the text into a BigMoney.

The parse must complete normally and parse the entire text (currency and amount). If the parse completes without reading the entire length of the text, an exception is thrown. If any other problem occurs during parsing, an exception is thrown.

Parameters:
text - the text to parse, not null
Returns:
the parsed monetary value, never null
Throws:
UnsupportedOperationException - if the formatter is unable to parse
MoneyFormatException - if there is a problem while parsing

parseMoney

public Money parseMoney(CharSequence text)
Fully parses the text into a Money requiring that the parsed amount has the correct number of decimal places.

The parse must complete normally and parse the entire text (currency and amount). If the parse completes without reading the entire length of the text, an exception is thrown. If any other problem occurs during parsing, an exception is thrown.

Parameters:
text - the text to parse, not null
Returns:
the parsed monetary value, never null
Throws:
UnsupportedOperationException - if the formatter is unable to parse
MoneyFormatException - if there is a problem while parsing
ArithmeticException - if the scale of the parsed money exceeds the scale of the currency

parse

public MoneyParseContext parse(CharSequence text,
                               int startIndex)
Parses the text extracting monetary information.

This method parses the input providing low-level access to the parsing state. The resulting context contains the parsed text, indicator of error, position following the parse and the parsed currency and amount. Together, these provide enough information for higher level APIs to use.

Parameters:
text - the text to parse, not null
startIndex - the start index to parse from
Returns:
the parsed monetary value, null only if the parse results in an error
Throws:
IndexOutOfBoundsException - if the start index is invalid
UnsupportedOperationException - if this formatter cannot parse

toString

public String toString()
Gets a string summary of the formatter.

Overrides:
toString in class Object
Returns:
a string summarising the formatter, never null


Copyright © 2009–2013 Joda.org. All rights reserved.