com.opensymphony.module.sitemesh.factory
Class DefaultFactory

java.lang.Object
  extended by com.opensymphony.module.sitemesh.Factory
      extended by com.opensymphony.module.sitemesh.factory.BaseFactory
          extended by com.opensymphony.module.sitemesh.factory.DefaultFactory

public class DefaultFactory
extends BaseFactory

DefaultFactory, reads configuration from /WEB-INF/sitemesh.xml, or uses the default configuration if sitemesh.xml does not exist.

Version:
$Revision: 1.3 $
Author:
Joe Walnes, Mathias Bogaert

Field Summary
(package private)  File configFile
           
(package private)  String configFileName
           
(package private)  long configLastModified
           
(package private)  Map configProps
           
(package private)  File excludesFile
           
(package private)  String excludesFileName
           
 
Fields inherited from class com.opensymphony.module.sitemesh.factory.BaseFactory
config, decoratorMapper, excludeUrls, pageParsers
 
Constructor Summary
DefaultFactory(Config config)
           
 
Method Summary
 DecoratorMapper getDecoratorMapper()
          Refresh config before delegating to superclass.
 PageParser getPageParser(String contentType)
          Refresh config before delegating to superclass.
 boolean isPathExcluded(String path)
          Returns true if the supplied path matches one of the exclude URLs specified in sitemesh.xml, otherwise returns false.
private  void loadConfig()
          Load configuration from file.
private  void loadDecoratorMappers(NodeList nodes)
           
private  void loadExcludes()
           
private  void loadExcludeUrls(NodeList nodes)
          Reads in all the url patterns to exclude from decoration.
private  void loadPageParsers(NodeList nodes)
          Loop through children of 'page-parsers' element and add all 'parser' mappings.
private  Element loadSitemeshXML()
           
private  void refresh()
          Check if configuration file has been modified, and if so reload it.
private  String replaceProperties(String str)
          Replaces any properties that appear in the supplied string with their actual values
 boolean shouldParsePage(String contentType)
          Refresh config before delegating to superclass.
 
Methods inherited from class com.opensymphony.module.sitemesh.factory.BaseFactory
addExcludeUrl, clearDecoratorMappers, clearExcludeUrls, clearParserMappings, mapParser, pushDecoratorMapper
 
Methods inherited from class com.opensymphony.module.sitemesh.Factory
getInstance, report
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

configFileName

String configFileName

configFile

File configFile

configLastModified

long configLastModified

configProps

Map configProps

excludesFileName

String excludesFileName

excludesFile

File excludesFile
Constructor Detail

DefaultFactory

public DefaultFactory(Config config)
Method Detail

getDecoratorMapper

public DecoratorMapper getDecoratorMapper()
Refresh config before delegating to superclass.

Overrides:
getDecoratorMapper in class BaseFactory

getPageParser

public PageParser getPageParser(String contentType)
Refresh config before delegating to superclass.

Overrides:
getPageParser in class BaseFactory
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)
Refresh config before delegating to superclass.

Overrides:
shouldParsePage in class BaseFactory

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. This method refreshes the config before delgating to the superclass.

Overrides:
isPathExcluded in class BaseFactory
Returns:
whether the path is excluded

loadConfig

private void loadConfig()
Load configuration from file.


loadSitemeshXML

private Element loadSitemeshXML()
                         throws ParserConfigurationException,
                                IOException,
                                SAXException
Throws:
ParserConfigurationException
IOException
SAXException

loadExcludes

private void loadExcludes()
                   throws ParserConfigurationException,
                          IOException,
                          SAXException
Throws:
ParserConfigurationException
IOException
SAXException

loadPageParsers

private void loadPageParsers(NodeList nodes)
Loop through children of 'page-parsers' element and add all 'parser' mappings.


loadDecoratorMappers

private void loadDecoratorMappers(NodeList nodes)

loadExcludeUrls

private void loadExcludeUrls(NodeList nodes)
Reads in all the url patterns to exclude from decoration.


refresh

private void refresh()
Check if configuration file has been modified, and if so reload it.


replaceProperties

private String replaceProperties(String str)
Replaces any properties that appear in the supplied string with their actual values

Parameters:
str - the string to replace the properties in
Returns:
the same string but with any properties expanded out to their actual values

www.opensymphony.com/sitemesh/