Gooey Formatter
We implement a singleton for formatting objects into strings, where
custom formatters ie. for specific types, are registered with the singleton.
href="http://aptframework.dev.java.net/gooey/formatter.html">
align="left" hspace="8"/>
A part of "Gooey Beans, a trilogy in 42 parts"
Code Snippet
Our singleton is implemented as follows.
public class QDefaultFormatter implements QFormatter {
public Map<Class, QFormatter> formatterMap = new HashMap();
...
public void register(Class type, QFormatter formatter) {
formatterMap.put(type, formatter);
}
public void register(QLabelMapFormatter formatter) {
QResourceMap resourceMap = new QResourceMap(formatter.getType());
resourceMap.configureEnumLabelMap(formatter.getType(),
formatter.getLabelMap());
formatterMap.put(formatter.getType(), formatter);
}
...
public String format(Object object) {
if (object == null) return "";
...
QFormatter formatter = formatterMap.get(object.getClass());
if (formatter != null) return formatter.format(object);
return object.toString();
}
...
}
where formatterMap is our registry map eg. for QLabelMapFormatter instances, which
map enum values to labels from our resource bundle.
- Login or register to post comments
- Printer-friendly version
- evanx's blog
- 433 reads





