# 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