com.atlassian.jira.web.bean
Class BackingI18n

java.lang.Object
  extended by com.atlassian.jira.web.bean.BackingI18n
All Implemented Interfaces:
I18nHelper

@Immutable
@Internal
public class BackingI18n
extends Object
implements I18nHelper

DEVSPEED-34: We wanted to properly cache the I18nBean. To make that happen we turned the I18nBean into a flyweight during JIRA 4.3. All of the original logic was moved into this class.

Looking up translations in plugins happens lazily. This (shouldn't) have any real world impact but it makes certain unit tests easier. (You don't need to worry about mocking out PluginAccessor.)

Note that this class is cached by the I18nBean.CachingFactory per Locale and will be re-created during plugin reload events.

Since:
4.3
See Also:
http://en.wikipedia.org/wiki/Flyweight_pattern

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.atlassian.jira.util.I18nHelper
I18nHelper.BeanFactory
 
Constructor Summary
BackingI18n(Locale locale, I18nTranslationMode i18nTranslationMode, InvolvedPluginsTracker involvedPluginsTracker, List<TranslationTransform> translationTransforms)
          Construct an I18nBean in the given Locale.
 
Method Summary
 ResourceBundle getDefaultResourceBundle()
           
 Set<String> getKeysForPrefix(String prefix)
          Given a prefix for an i18n key, this method will return all keys that start with the prefix specified.
 Locale getLocale()
           
protected  com.atlassian.plugin.PluginAccessor getPluginAccessor()
          Subclasses should override this and return null if they don't want to touch the ComponentManager
 String getText(String key)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, Object parameters)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found.
 String getText(String key, Object value1, Object value2, Object value3)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, Object value1, Object value2, Object value3, Object value4)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, Object value1, Object value2, Object value3, Object value4, Object value5)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, Object value1, Object value2, Object value3, Object value4, Object value5, Object value6)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, Object value1, Object value2, Object value3, Object value4, Object value5, Object value6, Object value7)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, Object value1, Object value2, Object value3, Object value4, Object value5, Object value6, Object value7, Object value8)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, String value1)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, String value1, String value2)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, String value1, String value2, String value3)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, String value1, String value2, String value3, String value4)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getText(String key, String value1, String value2, String value3, String value4, String value5, String value6, String value7)
          Called to return the formatted text of the specified i18n key
 String getText(String key, String value1, String value2, String value3, String value4, String value5, String value6, String value7, String value8, String value9)
          Called to return the formatted text of the specified i18n key or the key itself if no message can be found
 String getUnescapedText(String key)
          Get the raw property value, complete with {0}'s.
 String getUntransformedRawText(String key)
          Same as I18nHelper.getUnescapedText(String) but does not apply any TranslationTransforms.
 boolean isKeyDefined(String key)
          

For the given key, checks whether such a key is defined in the locale context represented by this helper instance.

 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BackingI18n

public BackingI18n(Locale locale,
                   I18nTranslationMode i18nTranslationMode,
                   InvolvedPluginsTracker involvedPluginsTracker,
                   List<TranslationTransform> translationTransforms)
Construct an I18nBean in the given Locale.

Parameters:
locale - the Locale
i18nTranslationMode - whether the magic translate mode is on or not
involvedPluginsTracker - keeps track of which plugins have I18N information so that we can avoid flushing the translation cache when unrelated modules
translationTransforms - a list of active translation transforms to apply
Method Detail

getLocale

public Locale getLocale()
Specified by:
getLocale in interface I18nHelper
Returns:
the Locale that is associated with this I18nHelper

getDefaultResourceBundle

public ResourceBundle getDefaultResourceBundle()
Specified by:
getDefaultResourceBundle in interface I18nHelper
Returns:
the default ResourceBundle within JIRA

getPluginAccessor

protected com.atlassian.plugin.PluginAccessor getPluginAccessor()
Subclasses should override this and return null if they don't want to touch the ComponentManager

Returns:
a PluginAccessor if its null then plugin resource loading wont happen

getKeysForPrefix

public Set<String> getKeysForPrefix(String prefix)
Description copied from interface: I18nHelper
Given a prefix for an i18n key, this method will return all keys that start with the prefix specified.

Specified by:
getKeysForPrefix in interface I18nHelper
Parameters:
prefix - The prefix for i18n keys. May not be null
Returns:
An immutable set of translation keys that start with the prefix specified.

getUnescapedText

public String getUnescapedText(String key)
Get the raw property value, complete with {0}'s.

Specified by:
getUnescapedText in interface I18nHelper
Parameters:
key - Non-null key to look up
Returns:
Unescaped property value for the key, or the key itself if no property with the specified key is found

getUntransformedRawText

public String getUntransformedRawText(String key)
Description copied from interface: I18nHelper
Same as I18nHelper.getUnescapedText(String) but does not apply any TranslationTransforms.

Specified by:
getUntransformedRawText in interface I18nHelper
Parameters:
key - the key of the i18n message
Returns:
the un-formatted text or the key itself if no i18n message can be found

isKeyDefined

public boolean isKeyDefined(String key)
Description copied from interface: I18nHelper

For the given key, checks whether such a key is defined in the locale context represented by this helper instance. Note that the actual translation may be in the 'fallback' default locale rather than the current locale.

The contract of this is method is correlated with I18nHelper.getUntransformedRawText(String), whereby if this method returns false, I18nHelper.getUntransformedRawText(String) will return the key provided as an argument, and if this method returns true, I18nHelper.getUntransformedRawText(String) will generally return the translation, which in some very unlikely cases may be equal to the key.

Specified by:
isKeyDefined in interface I18nHelper
Parameters:
key - translation key
Returns:
true, if any translation for such key exists, false otherwise

getText

public String getText(String key)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      String value1)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      String value1,
                      String value2)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      String value1,
                      String value2,
                      String value3)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object value1,
                      Object value2,
                      Object value3)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      String value1,
                      String value2,
                      String value3,
                      String value4)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object value1,
                      Object value2,
                      Object value3,
                      Object value4)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object value1,
                      Object value2,
                      Object value3,
                      Object value4,
                      Object value5)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
value5 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object value1,
                      Object value2,
                      Object value3,
                      Object value4,
                      Object value5,
                      Object value6)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
value5 - a value to be substituted into the message
value6 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      String value1,
                      String value2,
                      String value3,
                      String value4,
                      String value5,
                      String value6,
                      String value7)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
value5 - a value to be substituted into the message
value6 - a value to be substituted into the message
value7 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object value1,
                      Object value2,
                      Object value3,
                      Object value4,
                      Object value5,
                      Object value6,
                      Object value7)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
value5 - a value to be substituted into the message
value6 - a value to be substituted into the message
value7 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object value1,
                      Object value2,
                      Object value3,
                      Object value4,
                      Object value5,
                      Object value6,
                      Object value7,
                      Object value8)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
value5 - a value to be substituted into the message
value6 - a value to be substituted into the message
value7 - a value to be substituted into the message
value8 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      String value1,
                      String value2,
                      String value3,
                      String value4,
                      String value5,
                      String value6,
                      String value7,
                      String value8,
                      String value9)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
value1 - a value to be substituted into the message
value2 - a value to be substituted into the message
value3 - a value to be substituted into the message
value4 - a value to be substituted into the message
value5 - a value to be substituted into the message
value6 - a value to be substituted into the message
value7 - a value to be substituted into the message
value8 - a value to be substituted into the message
value9 - a value to be substituted into the message
Returns:
the formatted text or the key itself if no i18n message can be found

getText

public String getText(String key,
                      Object parameters)
Description copied from interface: I18nHelper
Called to return the formatted text of the specified i18n key or the key itself if no message can be found.

The object passed in can be an array, a List} or a single parameter object. It will be then used as substitution parameters within the message.

Specified by:
getText in interface I18nHelper
Parameters:
key - the key of the i18n message
parameters - This can be an Array, a List and Array or a single object parameter
Returns:
the formatted text or the key itself if no i18n message can be found


Copyright © 2002-2013 Atlassian. All Rights Reserved.