# Class StoreAppender

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

Direct Known Subclasses:
  `CertificateStoreAppender, ConnectorStoreAppender, StoreContextAppender`

public class StoreAppender extends Object
StoreAppends generate really the xml tag elements

## Constructor Summary

Constructors
Constructor
Description
`StoreAppender()`
Default constructor.

## Method Summary

Modifier and Type
Method
Description
`protected Object`
`checkAttribute(StoreDescription desc, PropertyDescriptor descriptor, String attributeName, Object bean, Object bean2)`
Check if the attribute should be printed.
`Object`
`defaultInstance(Object bean)`
Generate default Instance for the specified bean.
`protected boolean`
`isPersistable(Class<?> clazz)`
Is the specified property type one for which we should generate a persistence attribute?
`boolean`
`isPrintValue(Object bean, Object bean2, String attrName, StoreDescription desc)`
Determine if the attribute value needs to be stored.
`protected void`
`printAttribute(PrintWriter writer, int indent, Object bean, StoreDescription desc, String attributeName, Object bean2, Object value)`
Store the specified of the specified JavaBean.
`void`
`printAttributes(PrintWriter writer, int indent, boolean include, Object bean, StoreDescription desc)`
Store the relevant attributes of the specified JavaBean.
`void`
`printAttributes(PrintWriter writer, int indent, Object bean, StoreDescription desc)`
Store the relevant attributes of the specified JavaBean, plus a `className` attribute defining the fully qualified Java class name of the bean.
`void`
`printCloseTag(PrintWriter aWriter, StoreDescription aDesc)`
Print the closing tag.
`void`
`printIndent(PrintWriter aWriter, int indent)`
Print some spaces.
`void`
`printOpenTag(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc)`
Print only the open tag with all attributes.
`void`
`printTag(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc)`
Print tag with all attributes
`void`
`printTagArray(PrintWriter aWriter, String tag, int indent, String[] elements)`
Print an array of elements.
`void`
`printTagContent(PrintWriter aWriter, String tag, String content)`
Print the value from tag as content.
`void`
`printValue(PrintWriter writer, int indent, String name, Object value)`
Print an attribute value.

### Methods inherited from class Object

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

## Constructor Details

### StoreAppender

public StoreAppender()
Default constructor.

## Method Details

### printCloseTag

public void printCloseTag(PrintWriter aWriter, StoreDescription aDesc) throws Exception
Print the closing tag.

Parameters:
  `aWriter` - The output writer
  `aDesc` - Store description of the current element
Throws:
  `Exception` - A store error occurred

### printOpenTag

public void printOpenTag(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc) throws Exception
Print only the open tag with all attributes.

Parameters:
  `aWriter` - The output writer
  `indent` - Indentation level
  `bean` - The current bean that is stored
  `aDesc` - Store description of the current element
Throws:
  `Exception` - A store error occurred

### printTag

public void printTag(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc) throws Exception
Print tag with all attributes

Parameters:
  `aWriter` - The output writer
  `indent` - Indentation level
  `bean` - The current bean that is stored
  `aDesc` - Store description of the current element
Throws:
  `Exception` - A store error occurred

### printTagContent

public void printTagContent(PrintWriter aWriter, String tag, String content) throws Exception
Print the value from tag as content.

Parameters:
  `aWriter` - The output writer
  `tag` - The element name
  `content` - Element content
Throws:
  `Exception` - A store error occurred

### printTagArray

public void printTagArray(PrintWriter aWriter, String tag, int indent, String[] elements) throws Exception
Print an array of elements.

Parameters:
  `aWriter` - The output writer
  `tag` - The element name
  `indent` - Indentation level
  `elements` - Array of elements
Throws:
  `Exception` - Store error occurred

### printIndent

public void printIndent(PrintWriter aWriter, int indent)
Print some spaces.

Parameters:
  `aWriter` - The output writer
  `indent` - The number of spaces

### printAttributes

public void printAttributes(PrintWriter writer, int indent, Object bean, StoreDescription desc) throws Exception
Store the relevant attributes of the specified JavaBean, plus a `className` attribute defining the fully qualified Java class name of the bean.

Parameters:
  `writer` - PrintWriter to which we are storing
  `indent` - Indentation level
  `bean` - Bean whose properties are to be rendered as attributes,
  `desc` - Store description of the current element
Throws:
  `Exception` - if an exception occurs while storing

### printAttributes

public void printAttributes(PrintWriter writer, int indent, boolean include, Object bean, StoreDescription desc) throws Exception
Store the relevant attributes of the specified JavaBean.

Parameters:
  `writer` - PrintWriter to which we are storing
  `indent` - Indentation level
  `include` - Should we include a `className` attribute?
  `bean` - Bean whose properties are to be rendered as attributes,
  `desc` - Store description from this bean
Throws:
  `Exception` - if an exception occurs while storing

### checkAttribute

protected Object checkAttribute(StoreDescription desc, PropertyDescriptor descriptor, String attributeName, Object bean, Object bean2)
Check if the attribute should be printed.

Parameters:
  `desc` - Store description from this bean
  `descriptor` - PropertyDescriptor from this bean property
  `attributeName` - The attribute name to store
  `bean` - The current bean
  `bean2` - A default instance of the bean for comparison
Returns:
  null if the value should be skipped, the value to print otherwise

### printAttribute

protected void printAttribute(PrintWriter writer, int indent, Object bean, StoreDescription desc, String attributeName, Object bean2, Object value)
Store the specified of the specified JavaBean.

Parameters:
  `writer` - PrintWriter to which we are storing
  `indent` - Indentation level
  `bean` - The current bean
  `desc` - Store description from this bean
  `attributeName` - The attribute name to store
  `bean2` - A default instance of the bean for comparison
  `value` - The attribute value

### isPrintValue

public boolean isPrintValue(Object bean, Object bean2, String attrName, StoreDescription desc)
Determine if the attribute value needs to be stored.

Parameters:
  `bean` - original bean
  `bean2` - default bean
  `attrName` - attribute name
  `desc` - Store description from this bean
Returns:
  `true` if the value should be stored

### defaultInstance

public Object defaultInstance(Object bean) throws ReflectiveOperationException
Generate default Instance for the specified bean.

Parameters:
  `bean` - The bean
Returns:
  an object from same class as bean parameter
Throws:
  `ReflectiveOperationException` - Error creating a new instance

### printValue

public void printValue(PrintWriter writer, int indent, String name, Object value)
Print an attribute value.

Parameters:
  `writer` - PrintWriter to which we are storing
  `indent` - Indentation level
  `name` - Attribute name
  `value` - Attribute value

### isPersistable

protected boolean isPersistable(Class<?> clazz)
Is the specified property type one for which we should generate a persistence attribute?

Parameters:
  `clazz` - Java class to be tested
Returns:
  `true` if the specified class should be stored