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 }