View Javadoc

1   package com.atlassian.sal.core.message;
2   
3   import com.atlassian.sal.api.message.I18nResolver;
4   import com.atlassian.sal.api.message.Message;
5   import com.atlassian.sal.api.message.MessageCollection;
6   
7   import java.io.Serializable;
8   import java.util.Map;
9   import java.util.Locale;
10  
11  /**
12  
13   */
14  public abstract class AbstractI18nResolver implements I18nResolver
15  {
16      private static final Serializable[] EMPTY_SERIALIZABLE = new Serializable[0];
17  
18      public String getText(String key, Serializable... arguments)
19      {
20          Serializable[] resolvedArguments = new Serializable[arguments.length];
21          for (int i = 0; i < arguments.length; i++)
22          {
23              Serializable argument = arguments[i];
24              if (argument instanceof Message)
25              {
26                  resolvedArguments[i] = getText((Message) argument);
27              }
28              else
29              {
30                  resolvedArguments[i] = arguments[i];
31              }
32          }
33          return resolveText(key, resolvedArguments);
34      }
35  
36  
37      public String getText(String key)
38      {
39          return resolveText(key, EMPTY_SERIALIZABLE);
40      }
41  
42      public String getText(Message message)
43      {
44          return getText(message.getKey(), message.getArguments());
45      }
46  
47      public abstract String resolveText(String key, Serializable[] arguments);
48  
49  
50  	public Message createMessage(String key, Serializable... arguments)
51  	{
52  		return new DefaultMessage(key, arguments);
53  	}
54  
55  	public MessageCollection createMessageCollection()
56  	{
57  		return new DefaultMessageCollection();
58  	}
59  }