Class BaseFactory

java.lang.Object
com.opensymphony.module.sitemesh.Factory
com.opensymphony.module.sitemesh.factory.BaseFactory
All Implemented Interfaces:
PageParserSelector
Direct Known Subclasses:
DefaultFactory

public abstract class BaseFactory extends Factory
Base Factory implementation. Provides utility methods for implementation.
Author:
Joe Walnes
  • Field Details

    • config

      protected Config config
      The config is of type ServletConfig or FilterConfig.
    • decoratorMapper

      protected DecoratorMapper decoratorMapper
      Instance of DecoratorMapper. Because it is thread-safe, it can be shared by multiple clients. This is only the last DecoratorMapper in the chain, and all parents will be automatically delegated to it.
    • pageParsers

      protected Map<Object,Object> pageParsers
      Map that associates content-types with PageParser instances.
    • excludeUrls

      protected PathMapper excludeUrls
      A map of paths that are excluded from decoration.
  • Constructor Details

  • Method Details

    • getDecoratorMapper

      public DecoratorMapper getDecoratorMapper()
      Return instance of DecoratorMapper.
      Specified by:
      getDecoratorMapper in class Factory
      Returns:
      the decorator mapper
    • getPageParser

      public PageParser getPageParser(String contentType)
      Create a PageParser suitable for the given content-type.

      For example, if the supplied parameter is text/html a parser shall be returned that can parse HTML accordingly. Returns null if no parser can be found for the supplied content type.

      Parameters:
      contentType - The MIME content-type of the data to be parsed
      Returns:
      Appropriate PageParser for reading data, or null if no suitable parser was found.
    • shouldParsePage

      public boolean shouldParsePage(String contentType)
      Determine whether a Page of given content-type should be parsed or not.
      Parameters:
      contentType - the content type
      Returns:
      true, if successful
    • isPathExcluded

      public boolean isPathExcluded(String path)
      Returns true if the supplied path matches one of the exclude URLs specified in sitemesh.xml, otherwise returns false.
      Specified by:
      isPathExcluded in class Factory
      Parameters:
      path - The path.
      Returns:
      whether the path is excluded
    • clearDecoratorMappers

      protected void clearDecoratorMappers()
      Clear all current DecoratorMappers.
    • pushDecoratorMapper

      protected void pushDecoratorMapper(String className, Properties properties)
      Push new DecoratorMapper onto end of chain.
      Parameters:
      className - the class name
      properties - the properties
    • getDecoratorMapper

      Gets the decorator mapper.
      Parameters:
      decoratorMapperClass - the decorator mapper class
      Returns:
      the decorator mapper
      Throws:
      InstantiationException - the instantiation exception
      IllegalAccessException - the illegal access exception
      InvocationTargetException - the invocation target exception
      NoSuchMethodException - the no such method exception
    • clearParserMappings

      protected void clearParserMappings()
      Clear all PageParser mappings.
    • mapParser

      protected void mapParser(String contentType, String className)
      Map new PageParser to given content-type. contentType = null signifies default PageParser for unknown content-types.
      Parameters:
      contentType - the content type
      className - the class name
    • addExcludeUrl

      protected void addExcludeUrl(String path)
      Adds the exclude url.
      Parameters:
      path - the path
    • clearExcludeUrls

      protected void clearExcludeUrls()
      Clears all exclude URLs.