# Class ConnectorStoreAppender

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

public class ConnectorStoreAppender extends StoreAppender
Store the Connector attributes. Connector has really special design. A Connector is only a startup Wrapper for a ProtocolHandler. This meant that ProtocolHandler get all there attributes from the Connector attribute map. Strange is that some attributes change their name.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final Set<String>`
  `internalExecutorAttributes`
  `protected static final HashMap<String,String>`
  `replacements`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ConnectorStoreAppender()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected File`
  `getCatalinaBase()`
  `protected File`
  `getJkHomeBase(String jkHome, File appBase)`
  `protected List<String>`
  `getPropertyKeys(Connector bean)`
  Get all properties from Connector and current ProtocolHandler.
  `boolean`
  `isPrintValue(Object bean, Object bean2, String attrName, StoreDescription desc)`
  Print Connector Values.
  `void`
  `printAttributes(PrintWriter writer, int indent, boolean include, Object bean, StoreDescription desc)`
  Store the relevant attributes of the specified JavaBean.
  `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`
  `printValue(PrintWriter writer, int indent, String name, Object value)`
  Print an attribute value.
  `protected void`
  `storeConnectorAttributes(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc)`
  Print Attributes for the connector

  ### Methods inherited from class org.apache.catalina.storeconfig.StoreAppender

  `checkAttribute, defaultInstance, isPersistable, printAttribute, printAttributes, printCloseTag, printIndent, printTagArray, printTagContent, printTagValueArray`

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

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

- ## Field Details

  - ### replacements

    protected static final HashMap<String,String> replacements

  - ### internalExecutorAttributes

    protected static final Set<String> internalExecutorAttributes

- ## Constructor Details

  - ### ConnectorStoreAppender

    public ConnectorStoreAppender()

- ## Method Details

  - ### printAttributes

    public void printAttributes(PrintWriter writer, int indent, boolean include, Object bean, StoreDescription desc) throws Exception
    Description copied from class: `StoreAppender`
    Store the relevant attributes of the specified JavaBean.
    Overrides:
      `printAttributes` in class `StoreAppender`
    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

  - ### getPropertyKeys

    protected List<String> getPropertyKeys(Connector bean) throws IntrospectionException
    Get all properties from Connector and current ProtocolHandler.
    Parameters:
      `bean` - The connector
    Returns:
      List of Connector property names
    Throws:
      `IntrospectionException` - Error introspecting connector

  - ### storeConnectorAttributes

    protected void storeConnectorAttributes(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc) throws Exception
    Print Attributes for the connector
    Parameters:
      `aWriter` - Current writer
      `indent` - Indentation level
      `bean` - The connector bean
      `aDesc` - The connector description
    Throws:
      `Exception` - Store error occurred

  - ### printOpenTag

    public void printOpenTag(PrintWriter aWriter, int indent, Object bean, StoreDescription aDesc) throws Exception
    Description copied from class: `StoreAppender`
    Print only the open tag with all attributes.
    Overrides:
      `printOpenTag` in class `StoreAppender`
    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
    Description copied from class: `StoreAppender`
    Print tag with all attributes
    Overrides:
      `printTag` in class `StoreAppender`
    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

  - ### printValue

    public void printValue(PrintWriter writer, int indent, String name, Object value)
    Description copied from class: `StoreAppender`
    Print an attribute value.
    Overrides:
      `printValue` in class `StoreAppender`
    Parameters:
      `writer` - PrintWriter to which we are storing
      `indent` - Indentation level
      `name` - Attribute name
      `value` - Attribute value

  - ### isPrintValue

    public boolean isPrintValue(Object bean, Object bean2, String attrName, StoreDescription desc)
    Print Connector Values.
    - Special handling to default jkHome.
    - Don't save catalina.base path at server.xml
    Overrides:
      `isPrintValue` in class `StoreAppender`
    Parameters:
      `bean` - original bean
      `bean2` - default bean
      `attrName` - attribute name
      `desc` - StoreDescription from bean
    Returns:
      `true` if the value should be stored
    See Also:
      - `StoreAppender.isPrintValue(Object, Object, String, StoreDescription)`

  - ### getCatalinaBase

    protected File getCatalinaBase()

  - ### getJkHomeBase

    protected File getJkHomeBase(String jkHome, File appBase)