# Class StoreFactoryBase

java.lang.Object
org.apache.catalina.storeconfig.StoreFactoryBase

All Implemented Interfaces:
  `IStoreFactory`

Direct Known Subclasses:
  `CatalinaClusterSF`, `ChannelSF`, `ConnectorSF`, `CredentialHandlerSF`, `GlobalNamingResourcesSF`, `InterceptorSF`, `JarScannerSF`, `LoaderSF`, `ManagerSF`, `NamingResourcesSF`, `OpenSSLConfSF`, `PersistentManagerSF`, `RealmSF`, `SenderSF`, `SSLHostConfigSF`, `StandardContextSF`, `StandardEngineSF`, `StandardHostSF`, `StandardServerSF`, `StandardServiceSF`, `WatchedResourceSF`, `WebResourceRootSF`, `WrapperLifecycleSF`, `WrapperListenerSF`

public class StoreFactoryBase extends Object implements IStoreFactory
StoreFactory saves special elements. Output was generate with StoreAppenders.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final StringManager`
  `sm`
  The string manager for this package.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StoreFactoryBase()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getInfo()`
  `StoreRegistry`
  `getRegistry()`
  `StoreAppender`
  `getStoreAppender()`
  `void`
  `setRegistry(StoreRegistry aRegistry)`
  Set the registry.
  `void`
  `setStoreAppender(StoreAppender storeAppender)`
  Set the store appender.
  `void`
  `store(PrintWriter aWriter, int indent, Object aElement)`
  Store a server.xml element with attributes and children.
  `void`
  `storeChildren(PrintWriter aWriter, int indent, Object aElement, StoreDescription elementDesc)`
  Must Implement at subclass for custom store children handling.
  `protected void`
  `storeElement(PrintWriter aWriter, int indent, Object aTagElement)`
  Store only elements from storeChildren methods that are not a transient child.
  `protected void`
  `storeElementArray(PrintWriter aWriter, int indent, Object[] elements)`
  Save an array of elements.
  `void`
  `storeXMLHead(PrintWriter aWriter)`
  Store XML header.

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

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

- ## Field Details

  - ### sm

    protected static final StringManager sm
    The string manager for this package.

- ## Constructor Details

  - ### StoreFactoryBase

    public StoreFactoryBase()

- ## Method Details

  - ### getInfo

    public String getInfo()
    Returns:
      descriptive information about this Factory implementation and the corresponding version number, in the format `<description>/<version>`.

  - ### getStoreAppender

    public StoreAppender getStoreAppender()
    Specified by:
      `getStoreAppender` in interface `IStoreFactory`
    Returns:
      the writer

  - ### setStoreAppender

    public void setStoreAppender(StoreAppender storeAppender)
    Description copied from interface: `IStoreFactory`
    Set the store appender.
    Specified by:
      `setStoreAppender` in interface `IStoreFactory`
    Parameters:
      `storeAppender` - the writer

  - ### setRegistry

    public void setRegistry(StoreRegistry aRegistry)
    Description copied from interface: `IStoreFactory`
    Set the registry.
    Specified by:
      `setRegistry` in interface `IStoreFactory`
    Parameters:
      `aRegistry` - the registry to be associated with

  - ### getRegistry

    public StoreRegistry getRegistry()
    Specified by:
      `getRegistry` in interface `IStoreFactory`
    Returns:
      the associated registry

  - ### storeXMLHead

    public void storeXMLHead(PrintWriter aWriter)
    Description copied from interface: `IStoreFactory`
    Store XML header.
    Specified by:
      `storeXMLHead` in interface `IStoreFactory`
    Parameters:
      `aWriter` - the writer to write to

  - ### store

    public void store(PrintWriter aWriter, int indent, Object aElement) throws Exception
    Description copied from interface: `IStoreFactory`
    Store a server.xml element with attributes and children.
    Specified by:
      `store` in interface `IStoreFactory`
    Parameters:
      `aWriter` - the writer to write to
      `indent` - the indentation
      `aElement` - the element to write
    Throws:
      `Exception` - if an error occurs

  - ### storeChildren

    public void storeChildren(PrintWriter aWriter, int indent, Object aElement, StoreDescription elementDesc) throws Exception
    Must Implement at subclass for custom store children handling.
    Parameters:
      `aWriter` - Current output writer
      `indent` - Indentation level
      `aElement` - Current element
      `elementDesc` - The element description
    Throws:
      `Exception` - Configuration storing error

  - ### storeElement

    protected void storeElement(PrintWriter aWriter, int indent, Object aTagElement) throws Exception
    Store only elements from storeChildren methods that are not a transient child.
    Parameters:
      `aWriter` - Current output writer
      `indent` - Indentation level
      `aTagElement` - Current element
    Throws:
      `Exception` - Configuration storing error

  - ### storeElementArray

    protected void storeElementArray(PrintWriter aWriter, int indent, Object[] elements) throws Exception
    Save an array of elements.
    Parameters:
      `aWriter` - Current output writer
      `indent` - Indentation level
      `elements` - Array of elements
    Throws:
      `Exception` - Configuration storing error