Interface that is used to provide a relatively simple formatting interface to the rest of the system. Designed to wrap the complexity of the java.text format classes in an interface that can take two (or three if you include Locale) parameters from tags and apply formats in an intelligent way.
In terms of lifecycle, a formatter will be instantiated, have setFormatType(), setFormatString() and setLocale() called in rapid succession. If no values were supplied, setFormatType() and setFormatString() may not be called - and implementations should select reasonable defaults. Locale will always be provided. After the setters have been called, init() will be called, and the Formatter should use this opportunity to construct any internal objects necessary to perform formatting. The format() method will then be called one or more times before the Formatter is eventually dereferenced.
@author Tim Fennell