Class LocalizableItem

    • Field Detail

      • LANGUAGE_FALLBACK_ENABLED

        public static final java.lang.String LANGUAGE_FALLBACK_ENABLED
        Session context parameter which enables language fallback for for all localized property read operations. This means that each single property value which is NULL for the requested language is re-read using the (optional) fallback languages of the requested language.
        Since:
        2.20
        See Also:
        Constant Field Values
    • Constructor Detail

      • LocalizableItem

        public LocalizableItem()
    • Method Detail

      • getAllValuesSessionContext

        protected SessionContext getAllValuesSessionContext​(SessionContext ctx)
        creates a session context instance for getting all localized property values using getLocalizedProperty(SessionContext, String). the return value will be a map { Language -> Object }

        the created session context simply doesnt have a language.

        use it as follows:

         public Map myMethod(SessionContext ctx)
         {
                return (Map) getLocalizedProperty(getAllValuesSessionContext(ctx), "theKey");
         }
         
        Parameters:
        ctx - the original session contex
        Returns:
        a session context instance without a language set
      • isFallbackEnabled

        protected boolean isFallbackEnabled​(SessionContext ctx)
        Since:
        2.20
      • getAllLocalizedProperties

        public java.util.Map getAllLocalizedProperties()
        Returns all localized properties in the current session language as as Map of key/value mappings.

        This method calls getAllLocalizedProperties(SessionContext) with the current session's SessionContext object. See this method for more details.

        Returns:
        the Map of key/value mappings.
      • getAllLocalizedProperties

        public java.util.Map getAllLocalizedProperties​(SessionContext ctx)
        Returns all localized properties in given SessionContext language as as Map of key/value mappings.

        This method is using the following attributes of the given SessionContext:

        CacheUsage   Language   StagingMethod
        yes   yes   yes if called on a StageableItem, no otherwise


        Parameters:
        ctx - A SessionContext object
        Returns:
        the Map of key/value mappings.
      • getLocalizedPropertyNames

        public java.util.Set getLocalizedPropertyNames()
        Returns the qualifiers of all localized properties of this item.

        This method calls getLocalizedPropertyNames(SessionContext) with the current session's SessionContext object. See this method for more details.

        Returns:
        the set containing the property names (Strings)
      • getLocalizedPropertyNames

        public java.util.Set getLocalizedPropertyNames​(SessionContext ctx)
        Returns the qualifiers of all localized properties of this item.

        This method is using the following attributes of the given SessionContext:

        CacheUsage   Language   StagingMethod
        yes   yes   yes if called on a StageableItem, no otherwise


        Parameters:
        ctx - a SessionContext object
        Returns:
        the set containing the property names (Strings)
      • getLocalizedProperty

        public java.lang.Object getLocalizedProperty​(java.lang.String name)
        Returns the value of a localized property.

        This method calls getLocalizedProperty(SessionContext, String) with the current session's SessionContext object. See this method for more details.

        Parameters:
        name - the name of the property
        Returns:
        the property that is mapped to the name
      • getLocalizedProperty

        public java.lang.Object getLocalizedProperty​(SessionContext ctx,
                                                     java.lang.String name)
        Returns the value of a localized property.

        This method is using the following attributes of the given SessionContext:

        CacheUsage   Language   StagingMethod
        yes   yes   yes if called on a StageableItem, no otherwise


        Parameters:
        ctx - a SessionContext object
        name - the name of the property
        Returns:
        the localized property that is mapped to the name
      • isEmptyValue

        protected boolean isEmptyValue​(SessionContext ctx,
                                       java.lang.String name,
                                       java.lang.Object value)
        Override this method to implement different language fallback behaviour. As default only null values are considered as empty. Example:
         @Override
         protected boolean isEmptyValue(SessionContext ctx, String name, Object value)
         {
                return super.isEmptyValue(ctx, name, value) || ("myAttr".equals(name) && ((String) value).trim().length() == 0);
         }
         
        Parameters:
        ctx - the session context while getting the property
        name - the property name
        value - the actual stored value
        Returns:
        true if the value should be treated as empty - in this case values for fallback languages are fetched
      • setLocalizedProperty

        public java.lang.Object setLocalizedProperty​(java.lang.String name,
                                                     java.lang.Object value)
        Sets the value of a localized property. The value is set for the current session language.
         jaloSession.getSessionContext().setLanguage(jaloSession.getC2LManager().getLanguageByIsoCode("DE"));
         myLocItem.setLocalizedProperty("de-value");
         
        Parameters:
        name - the name of the property
        value - the new value of this property
        Returns:
        the localized property that was mapped to the name before setting the new property.
      • setLocalizedProperty

        public java.lang.Object setLocalizedProperty​(SessionContext ctx,
                                                     java.lang.String name,
                                                     java.lang.Object value)
        Sets the value of a localized property. Normally the value is set for the language spcified by the given session context.
         SessionContext ctx = jaloSession.createSessionContext();
         ctx.setLanguage(jaloSession.getC2LManager().getLanguageByIsoCode("DE"));
         myLocItem.setLocalizedProperty(ctx, "de-value");
         

        if the session context doesnt hold a language it is expected that all values are meant to be set at once - the given value has to be a map { Language -> Serializable } in that case !

         Map allValues = new HashMap();
         allValues.put(jaloSession.getC2LManager().getLanguageByIsoCode("DE"), "de-value");
         allValues.put(jaloSession.getC2LManager().getLanguageByIsoCode("EN"), "en-value");
         SessionContext ctx = jaloSession.createSessionContext();
         ctx.setLanguage(null);
         myLocItem.setLocalizedProperty(ctx, allValues);
         
        Parameters:
        name - the name of the property
        value - the new value of this property
        ctx - the session context defining the language to set the value for
        Returns:
        the localized property that was mapped to the name before setting the new property.
      • setAllLocalizedProperties

        public java.util.Map<Language,​?> setAllLocalizedProperties​(SessionContext ctx,
                                                                         java.lang.String name,
                                                                         java.util.Map<Language,​?> values)
        Changes multiple localized values of one property at once. The values map specifies which values should be set for their mapped languages.

        Please note that this method will not clear any existing value for languages which are missing in the values map!

        Parameters:
        ctx - the session context
        name - the property name
        values -
        Returns:
        the previous value for the mapped languages
      • setAllLocalizedProperties

        public java.util.Map<Language,​?> setAllLocalizedProperties​(java.lang.String name,
                                                                         java.util.Map<Language,​?> values)
        Changes multiple localized values of one property at once. The values map specifies which values should be set for their mapped languages.

        Please note that this method will not clear any existing value for languages which are missing in the values map!

        Parameters:
        name - the property name
        values -
        Returns:
        the previous value for the mapped languages
      • getAllLocalizedProperties

        public java.util.Map<Language,​?> getAllLocalizedProperties​(SessionContext ctx,
                                                                         java.lang.String name,
                                                                         java.util.Set<Language> languages)
        Returns all values of a localized property according to a specified set of languages. Values mapped to other languages are not returned.
        Parameters:
        ctx - the session context
        name - the property name
        languages - the languages to get values for
      • getAllLocalizedProperties

        public java.util.Map<Language,​?> getAllLocalizedProperties​(java.lang.String name,
                                                                         java.util.Set<Language> languages)
        Returns all values of a localized property according to a specified set of languages. Values mapped to other languages are not returned.
        Parameters:
        name - the property name
        languages - the languages to get values for
      • removeLocalizedProperty

        public java.lang.Object removeLocalizedProperty​(SessionContext ctx,
                                                        java.lang.String name)
        Removes a localized property from this item.

        Please note that only the property in the SessionContext language is removed. Its other values will remain unchanged.

        Parameters:
        name - the name of the property
        ctx - a SessionContext object defining the language to remove value for
        Returns:
        the localized property value which was removed