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      private final I18nResolver i18nResolver;
16  
17      public SalMessageInterpolator(I18nResolver i18nResolver) {
18          this.i18nResolver = i18nResolver;
19      }
20  
21      public String interpolate(String s, Context context) {
22          // We can't do interpolation since sal (2.0) has no way to pass it a variable map.
23          String message = i18nResolver.getText(s);
24  
25          // It is possible via the API it could return null
26          message = (message != null ? message : s);
27  
28          return message;
29  
30  
31      }
32  
33      public String interpolate(String s, Context context, Locale locale) {
34          // Can't do anything with locale
35          return interpolate(s, context);
36      }
37  }