View Javadoc

1   package com.atlassian.plugins.rest.common.validation;
2   
3   import com.atlassian.sal.api.message.I18nResolver;
4   
5   import javax.validation.MessageInterpolator;
6   import java.util.Locale;
7   
8   /**
9    * Looks up messages using SAL's {@link I18nResolver}.  Does not support interpolation due to a lack of support in
10   * {@link I18nResolver} to accept a map of replacement variables.
11   *
12   * @since 2.0
13   */
14  public class SalMessageInterpolator implements MessageInterpolator
15  {
16      private final I18nResolver i18nResolver;
17  
18      public SalMessageInterpolator(I18nResolver i18nResolver)
19      {
20          this.i18nResolver = i18nResolver;
21      }
22  
23      public String interpolate(String s, Context context)
24      {
25          // We can't do interpolation since sal (2.0) has no way to pass it a variable map.
26          String message = i18nResolver.getText(s);
27  
28          // It is possible via the API it could return null
29          message = (message != null ? message : s);
30  
31          return message;
32  
33  
34      }
35  
36      public String interpolate(String s, Context context, Locale locale)
37      {
38          // Can't do anything with locale
39          return interpolate(s, context);
40      }
41  }