package net.sourceforge.pmd.eclipse.ui.preferences.br;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import net.sourceforge.pmd.RulePriority;
import net.sourceforge.pmd.lang.Language;
import net.sourceforge.pmd.lang.LanguageVersion;
/**
*
* @author Brian Remedios
*/
public class FormatManager {
private static final Map<Class<?>, ValueFormatter> formattersByType = new HashMap<Class<?>, ValueFormatter>();
private FormatManager() {}
static { // used to render property values in short form in main table
formattersByType.put(String.class, ValueFormatter.StringFormatter);
formattersByType.put(String[].class, ValueFormatter.MultiStringFormatter);
formattersByType.put(Boolean.class, ValueFormatter.BooleanFormatter);
formattersByType.put(Boolean[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(Integer.class, ValueFormatter.NumberFormatter);
formattersByType.put(Integer[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(Long.class, ValueFormatter.NumberFormatter);
formattersByType.put(Long[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(Float.class, ValueFormatter.NumberFormatter);
formattersByType.put(Float[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(Double.class, ValueFormatter.NumberFormatter);
formattersByType.put(Double[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(Character.class, ValueFormatter.ObjectFormatter);
formattersByType.put(Character[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(Class.class, ValueFormatter.TypeFormatter);
formattersByType.put(Class[].class, ValueFormatter.MultiTypeFormatter);
formattersByType.put(Method.class, ValueFormatter.MethodFormatter);
formattersByType.put(Method[].class, ValueFormatter.MultiMethodFormatter);
formattersByType.put(Object[].class, ValueFormatter.ObjectArrayFormatter);
formattersByType.put(RulePriority.class, ValueFormatter.PriorityFormatter);
formattersByType.put(Language.class, ValueFormatter.LanguageFormatter);
formattersByType.put(LanguageVersion.class, ValueFormatter.LanguageVersionFormatter);
}
public static ValueFormatter formatterFor(Class<?> type) {
return formattersByType.get(type);
}
}