StoreAppender (Apache Tomcat 9.0.117 API Documentation)
Description: declaration: package: org.apache.catalina.storeconfig, class: StoreAppender

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

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

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

- ## Constructor Details

  - ### StoreAppender

    public StoreAppender()

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

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