ObjectFormaterFactory.java

package sk.iway.iwcm.system.json;

import java.util.HashMap;
import java.util.Map;

public class ObjectFormaterFactory
{
	private Map<Class<?>, ObjectFormater> formaters = new HashMap<Class<?>, ObjectFormater>();
	
	private static final ObjectFormater DEFAULT_FORMATER = new ObjectFormater() {
		
		@Override
		public Object format(Object object)
		{
			return object;
		}
	};
	
	public void setFormater(Class<?> className, ObjectFormater formatter)
	{
		formaters.put(className, formatter);
	}
	
	public Object format(Object object)
	{
		Class<?> clazz = object.getClass();
		if (formaters.containsKey(clazz))
		{
			return formaters.get(clazz).format(object);
		}
		return DEFAULT_FORMATER.format(object);
	}

}