The Source for Java Technology Collaboration
User: Password:
Register | Login help    

Search

Online Books:
java.net on MarkMail:


Gooey Formatter

Posted by evanx on December 14, 2006 at 2:18 AM PST

We implement a singleton for formatting objects into strings, where custom formatters ie. for specific types, are registered with the singleton.


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.


Related Topics >> Java Desktop      
Comments
Comments are listed in date ascending order (oldest first)