# 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 org.apache.tomcat.util.digester.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 org.apache.tomcat.util.digester.Rule

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

  ### Methods inherited from class java.lang.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