# Class StoreFactoryRule

java.lang.Object
org.apache.tomcat.util.digester.Rule
org.apache.catalina.storeconfig.StoreFactoryRule

public class StoreFactoryRule extends Rule

Rule that creates a new `IStoreFactory` instance, and associates it with the top object on the stack (which must implement `IStoreFactory`).

## Field Summary

### Fields inherited from class Rule

`digester, namespaceURI, sm`

## Constructor Summary

Constructors
Constructor
Description
`StoreFactoryRule(String storeFactoryClass, String attributeName, String storeAppenderClass, String appenderAttributeName)`
Construct a new instance of this Rule.

## Method Summary

Modifier and Type
Method
Description
`void`
`begin(String namespace, String name, Attributes attributes)`
This method is called when the beginning of a matching XML element is encountered.
`protected Object`
`newInstance(String attr, String defaultName, Attributes attributes)`
Create new instance from attribute className!

### Methods inherited from class Rule

`body, end, finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI`

### Methods inherited from class Object

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

## Constructor Details

### StoreFactoryRule

public StoreFactoryRule(String storeFactoryClass, String attributeName, String storeAppenderClass, String appenderAttributeName)
Construct a new instance of this Rule.

Parameters:
  `storeFactoryClass` - Default name of the StoreFactory implementation class to be created
  `attributeName` - Name of the attribute that optionally includes an override name of the IStoreFactory class
  `storeAppenderClass` - The store appender class
  `appenderAttributeName` - The attribute name for the store appender class

## Method Details

### begin

public void begin(String namespace, String name, Attributes attributes) throws Exception
Description copied from class: `Rule`
This method is called when the beginning of a matching XML element is encountered. The default implementation is a NO-OP.

Overrides:
  `begin` in class `Rule`
Parameters:
  `namespace` - the namespace URI of the matching element, or an empty string if the parser is not namespace aware or the element has no namespace
  `name` - the local name if the parser is namespace aware, or just the element name otherwise
  `attributes` - The attribute list of this element
Throws:
  `Exception` - if an error occurs while processing the event

### newInstance

protected Object newInstance(String attr, String defaultName, Attributes attributes) throws ReflectiveOperationException
Create new instance from attribute className!

Parameters:
  `attr` - class Name attribute
  `defaultName` - Default Class
  `attributes` - current digester attribute elements
Returns:
  new configured object instance
Throws:
  `ReflectiveOperationException` - Error creating an instance