Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 import java.util.Date;
 import java.util.Map;
public class LocalizedFormatter extends ForwardingMap<Class<?>, Object> {
	private final ResourceBundle bundle;
	private final Locale locale;

CDI eyes only
	public LocalizedFormatter() {
	public LocalizedFormatter(ResourceBundle bundleLocale locale,
			NullSafeLocalized nullSafeLocalized) {
		this. = bundle;
		this. = locale;
		this. = nullSafeLocalized;
	public LocalizedInfo get(Object key) {
		if (key == null)
			return this.;
		if (key instanceof Calendar) {
			Date date = ((Calendarkey).getTime();
			return new LocalizedData(date);
else if (key instanceof Date) {
			return new LocalizedData((Datekey);
else if (isJodaTime(key)) {
			Date date = convertJodaTime(key);
			return new LocalizedData(date);
else if (key instanceof Number) {
			return new LocalizedNumber((Numberkey);
else {
					"Cannot format given Object as a Date");
	private boolean isJodaTime(Object key) {
		try {
			Class<?> clazz = Class
			return clazz.isAssignableFrom(key.getClass());
catch (ClassNotFoundException e) {
			return false;
	private Date convertJodaTime(Object key) {
		try {
			return (Datekey.getClass().getMethod("toDate").invoke(key);
			throw new RuntimeException(e);

All methods from java.util.Map that were not override by LocalizedFormatter will call delegate() This way all methods that were not override will throw java.lang.UnsupportedOperationException
	protected Map<Class<?>, Objectdelegate() {
				"A i18n localized formatter does not support this method");
New to GrepCode? Check out our FAQ X