Class MoneyFormatter

java.lang.Object
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:
  • Method Details

    • 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 parse 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