Package org.apache.catalina.storeconfig

## 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
`StoreAppender()`

### Method Summary

All Methods Instance Methods Concrete Methods
`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` `printTagValueArray​(PrintWriter aWriter, String tag, int indent, String[] elements)` Print an array of values.
`void` `printValue​(PrintWriter writer, int indent, String name, Object value)` Print an attribute value.

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

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

### Constructor Detail

#### StoreAppender

    public StoreAppender()

### Method Detail

#### 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

#### printTagValueArray

    public void printTagValueArray​(PrintWriter aWriter,
                                   String tag,
                                   int indent,
                                   String[] elements)

Print an array of values.

Parameters:
  `aWriter` - The output writer
  `tag` - The element name
  `indent` - Indentation level
  `elements` - Array of element values

#### 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` - RegistryDescriptor 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` - RegistryDescriptor 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` - RegistryDescriptor 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` - StoreDescription from 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