Package com.opensymphony.module.sitemesh.factory

# Class DefaultFactory

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

All Implemented Interfaces:
  `PageParserSelector`

public class DefaultFactory extends BaseFactory
DefaultFactory, reads configuration from the `sitemesh.configfile` init param, or `/WEB-INF/sitemesh.xml` if not specified, or uses the default configuration if `sitemesh.xml` does not exist.

To use the `sitemesh.configfile` parameter, add the following to your web.xml:

     <context-param>
          <param-name>sitemesh.configfile</param-name>
          <param-value>/WEB-INF/etc/sitemesh.xml</param-value>
      </context-param>

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

## Field Summary

Fields
Modifier and Type
Field
Description
`static long`
`configCheckMillis`
`(package private) File`
`configFile`
`(package private) String`
`configFileName`
`private long`
`configLastCheck`
`(package private) long`
`configLastModified`
`(package private) Map`
`configProps`
`private static final String`
`DEFAULT_CONFIG_FILENAME`
`(package private) File`
`excludesFile`
`(package private) String`
`excludesFileName`

### Fields inherited from class com.opensymphony.module.sitemesh.factory.BaseFactory

`config, decoratorMapper, excludeUrls, pageParsers`

## Constructor Summary

Constructors
Constructor
Description
`DefaultFactory(Config config)`

## Method Summary

Modifier and Type
Method
Description
`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()`
`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

### Methods inherited from class com.opensymphony.module.sitemesh.factory.BaseFactory

`addExcludeUrl, clearDecoratorMappers, clearExcludeUrls, clearParserMappings, getDecoratorMapper, getDecoratorMapper, getPageParser, isPathExcluded, mapParser, pushDecoratorMapper, shouldParsePage`

### Methods inherited from class com.opensymphony.module.sitemesh.Factory

`getInstance`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### configFileName

String configFileName

### DEFAULT_CONFIG_FILENAME

private static final String DEFAULT_CONFIG_FILENAME

See Also:
  - Constant Field Values

### configFile

File configFile

### configLastModified

long configLastModified

### configLastCheck

private long configLastCheck

### configCheckMillis

public static long configCheckMillis

### configProps

Map configProps

### excludesFileName

String excludesFileName

### excludesFile

File excludesFile

## Constructor Details

### DefaultFactory

public DefaultFactory(Config config)

## Method Details

### 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

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

Specified by:
  `refresh` in class `Factory`

### 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