Gooey Formatter
We implement a singleton for formatting objects into strings, where custom formatters ie. for specific types, are registered with the singleton.
Our singleton is implemented as follows.
where formatterMap is our registry map eg. for QLabelMapFormatter instances, which
map enum values to labels from our resource bundle.
Code Snippet
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();
}
...
}





