001 package com.khubla.pragmatach.framework.i8n;
002
003 import java.util.Date;
004 import java.util.Set;
005
006 import com.khubla.pragmatach.framework.api.I8NProvider;
007 import com.khubla.pragmatach.framework.api.PragmatachException;
008
009 /**
010 * @author tome
011 */
012 public class I8NResolver {
013 /**
014 * providers
015 */
016 private final Set<I8NProvider> i8nProviders;
017
018 /**
019 * ctor
020 */
021 public I8NResolver(Set<I8NProvider> i8nProviders) {
022 this.i8nProviders = i8nProviders;
023 }
024
025 /**
026 * get localized date
027 */
028 public String date(String locale, Date date) throws PragmatachException {
029 if (null != i8nProviders) {
030 for (final I8NProvider iI8NProvider : i8nProviders) {
031 final String d = iI8NProvider.getDate(locale, date);
032 if (null != d) {
033 return d;
034 }
035 }
036 }
037 return null;
038 }
039
040 /**
041 * search for i8N string across providers
042 */
043 public String text(String locale, String name) throws PragmatachException {
044 if (null != i8nProviders) {
045 for (final I8NProvider iI8NProvider : i8nProviders) {
046 final String r = iI8NProvider.getString(locale, name);
047 if (null != r) {
048 return r;
049 }
050 }
051 }
052 return null;
053 }
054 }