Class MoneyFormatter
- java.lang.Object
-
- org.joda.money.format.MoneyFormatter
-
- All Implemented Interfaces:
java.io.Serializable
public final class MoneyFormatter extends java.lang.Object implements java.io.Serializable
Formats instances of money to and from a String.Instances of
MoneyFormatter
can be created byMoneyFormatterBuilder
.This class is immutable and thread-safe.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Locale
locale
The locale to use.private MultiPrinterParser
printerParser
The printer/parser.private static long
serialVersionUID
Serialization version.
-
Constructor Summary
Constructors Modifier Constructor Description (package private)
MoneyFormatter(java.util.Locale locale, MoneyPrinter[] printers, MoneyParser[] parsers)
Constructor, creating a new formatter.private
MoneyFormatter(java.util.Locale locale, MultiPrinterParser printerParser)
Constructor, creating a new formatter.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static void
checkNotNull(java.lang.Object object, java.lang.String message)
Validates that the object specified is not nulljava.util.Locale
getLocale()
Gets the locale to use.(package private) MultiPrinterParser
getPrinterParser()
Gets the printer/parser.boolean
isParser()
Checks whether this formatter can parse.boolean
isPrinter()
Checks whether this formatter can print.MoneyParseContext
parse(java.lang.CharSequence text, int startIndex)
Parses the text extracting monetary information.BigMoney
parseBigMoney(java.lang.CharSequence text)
Fully parses the text into aBigMoney
.Money
parseMoney(java.lang.CharSequence text)
Fully parses the text into aMoney
requiring that the parsed amount has the correct number of decimal places.void
print(java.lang.Appendable appendable, BigMoneyProvider moneyProvider)
Prints a monetary value to anAppendable
converting anyIOException
to aMoneyFormatException
.java.lang.String
print(BigMoneyProvider moneyProvider)
Prints a monetary value to aString
.void
printIO(java.lang.Appendable appendable, BigMoneyProvider moneyProvider)
Prints a monetary value to anAppendable
potentially throwing anIOException
.java.lang.String
toString()
Gets a string summary of the formatter.MoneyFormatter
withLocale(java.util.Locale locale)
Returns a copy of this instance with the specified locale.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Serialization version.- See Also:
- Constant Field Values
-
locale
private final java.util.Locale locale
The locale to use.
-
printerParser
private final MultiPrinterParser printerParser
The printer/parser.
-
-
Constructor Detail
-
MoneyFormatter
MoneyFormatter(java.util.Locale locale, MoneyPrinter[] printers, MoneyParser[] parsers)
Constructor, creating a new formatter.- Parameters:
locale
- the locale to use, not nullprinters
- the printers, not nullparsers
- the parsers, not null
-
MoneyFormatter
private MoneyFormatter(java.util.Locale locale, MultiPrinterParser printerParser)
Constructor, creating a new formatter.- Parameters:
locale
- the locale to use, not nullprinterParser
- the printer/parser, not null
-
-
Method Detail
-
checkNotNull
static void checkNotNull(java.lang.Object object, java.lang.String message)
Validates that the object specified is not null- Parameters:
object
- the object to check, null throws exceptionmessage
- the message to use in the exception, not null- Throws:
java.lang.NullPointerException
- if the input value is null
-
getPrinterParser
MultiPrinterParser getPrinterParser()
Gets the printer/parser.- Returns:
- the printer/parser, never null
-
getLocale
public java.util.Locale getLocale()
Gets the locale to use.- Returns:
- the locale, never null
-
withLocale
public MoneyFormatter withLocale(java.util.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 java.lang.String print(BigMoneyProvider moneyProvider)
Prints a monetary value to aString
.- Parameters:
moneyProvider
- the money to print, not null- Returns:
- the string printed using the settings of this formatter
- Throws:
java.lang.UnsupportedOperationException
- if the formatter is unable to printMoneyFormatException
- if there is a problem while printing
-
print
public void print(java.lang.Appendable appendable, BigMoneyProvider moneyProvider)
Prints a monetary value to anAppendable
converting anyIOException
to aMoneyFormatException
.Example implementations of
Appendable
areStringBuilder
,StringBuffer
orWriter
. Note thatStringBuilder
andStringBuffer
never throw anIOException
.- Parameters:
appendable
- the appendable to add to, not nullmoneyProvider
- the money to print, not null- Throws:
java.lang.UnsupportedOperationException
- if the formatter is unable to printMoneyFormatException
- if there is a problem while printing
-
printIO
public void printIO(java.lang.Appendable appendable, BigMoneyProvider moneyProvider) throws java.io.IOException
Prints a monetary value to anAppendable
potentially throwing anIOException
.Example implementations of
Appendable
areStringBuilder
,StringBuffer
orWriter
. Note thatStringBuilder
andStringBuffer
never throw anIOException
.- Parameters:
appendable
- the appendable to add to, not nullmoneyProvider
- the money to print, not null- Throws:
java.lang.UnsupportedOperationException
- if the formatter is unable to printMoneyFormatException
- if there is a problem while printingjava.io.IOException
- if an IO error occurs
-
parseBigMoney
public BigMoney parseBigMoney(java.lang.CharSequence text)
Fully parses the text into aBigMoney
.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:
java.lang.UnsupportedOperationException
- if the formatter is unable to parseMoneyFormatException
- if there is a problem while parsing
-
parseMoney
public Money parseMoney(java.lang.CharSequence text)
Fully parses the text into aMoney
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:
java.lang.UnsupportedOperationException
- if the formatter is unable to parseMoneyFormatException
- if there is a problem while parsingjava.lang.ArithmeticException
- if the scale of the parsed money exceeds the scale of the currency
-
parse
public MoneyParseContext parse(java.lang.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 nullstartIndex
- the start index to parse from- Returns:
- the parsed monetary value, null only if the parse results in an error
- Throws:
java.lang.IndexOutOfBoundsException
- if the start index is invalidjava.lang.UnsupportedOperationException
- if this formatter cannot parse
-
toString
public java.lang.String toString()
Gets a string summary of the formatter.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string summarising the formatter, never null
-
-