package org.orienteer.core.util;
import java.io.Serializable;
import java.util.Locale;
import java.util.Map;
import org.orienteer.core.OrienteerWebSession;
import com.google.common.base.Function;
/**
* {@link Function} to localize input value
*
* @param <F> type of source object
*/
public class LocalizeFunction<F> implements Function<F, String>, Serializable{
private static final LocalizeFunction<?> INSTANCE = new LocalizeFunction<Object>();
public static <M> LocalizeFunction<M> getInstance() {
return (LocalizeFunction<M>) INSTANCE;
}
@Override
public String apply(F input) {
Object value = input;
if(value instanceof Map) {
value = CommonUtils.localizeByMap((Map<String, ?>) value, true,
OrienteerWebSession.get().getLocale().getLanguage(),
Locale.getDefault().getLanguage());
}
return CommonUtils.objectToString(value, null);
}
}