} else if (clazz == Date.class) {
return new DatePatternFormat(pattern, timezone, getLocale(locale));
} else if (clazz == char.class || clazz == Character.class) {
return new CharacterFormat();
} else if (clazz.isEnum()) {
return new EnumFormat(clazz);
} else {
throw new IllegalArgumentException("Can not find a suitable formatter for the type: " + clazz.getCanonicalName());
}
}