Class LanguageDecoratorMapper

  • All Implemented Interfaces:
    DecoratorMapper

    public final class LanguageDecoratorMapper
    extends AbstractDecoratorMapper
    The LanguageDecoratorMapper can determine the preferred language set in the browser requesting a page, and map to a suitable Decorator (using the "Accept-Language" HTTP header).

    This can be useful for supplying different versions of the same content for different languages.

    When LanguageDecoratorMapper is in the chain, it will request the appropriate Decorator from its parent. It will then add an extention to the filename of the Decorator, and if that file exists it shall be used as the Decorator instead. For example, if the Decorator path is /blah.jsp and the detected preferred language is en, the path /blah-en.jsp shall be used.

    The language mappings are configured by passing properties with match. as a prefix. For example: 'match.en'=engl , 'match.nl'=dutch .

    Author:
    Mathias Bogaert
    See Also:
    DecoratorMapper
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Decorator getDecorator​(javax.servlet.http.HttpServletRequest request, Page page)
      Delegate to parent.
      private java.lang.String getExt​(java.lang.String acceptLanguage)
      Get extention for the language.
      void init​(Config config, java.util.Properties properties, DecoratorMapper parent)
      Set parent.
      private void initMap​(java.util.Properties props)
      Initialize language mappings.
      private static java.lang.String modifyPath​(java.lang.String path, java.lang.String ext)
      Change /abc/def.jsp into /abc/def-XYZ.jsp
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • map

        private java.util.Map map
    • Constructor Detail

      • LanguageDecoratorMapper

        public LanguageDecoratorMapper()
    • Method Detail

      • init

        public void init​(Config config,
                         java.util.Properties properties,
                         DecoratorMapper parent)
                  throws java.lang.InstantiationException
        Description copied from class: AbstractDecoratorMapper
        Set parent.
        Specified by:
        init in interface DecoratorMapper
        Overrides:
        init in class AbstractDecoratorMapper
        Parameters:
        config - Config supplied by Servlet or Filter.
        properties - Any initialization properties (specific to implementation).
        Throws:
        java.lang.InstantiationException - should be thrown if the implementation cannot be initialized properly.
      • getExt

        private java.lang.String getExt​(java.lang.String acceptLanguage)
        Get extention for the language.
      • modifyPath

        private static java.lang.String modifyPath​(java.lang.String path,
                                                   java.lang.String ext)
        Change /abc/def.jsp into /abc/def-XYZ.jsp
      • initMap

        private void initMap​(java.util.Properties props)
        Initialize language mappings.