Package org.apache.catalina.storeconfig

## 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 there name and the attribute sslProtocol need a special handling

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected static java.util.HashMap<java.lang.String,​java.lang.String>` | `replacements` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ConnectorStoreAppender()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected java.io.File` | `getCatalinaBase()` |
    `protected java.io.File` | `getJkHomeBase​(java.lang.String jkHome, java.io.File appBase)` |
    `protected java.util.List<java.lang.String>` | `getPropertyKeys​(Connector bean)` | Get all properties from Connector and current ProtocolHandler.
    `boolean` | `isPrintValue​(java.lang.Object bean, java.lang.Object bean2, java.lang.String attrName, StoreDescription desc)` | Print Connector Values.
    `void` | `printAttributes​(java.io.PrintWriter writer, int indent, boolean include, java.lang.Object bean, StoreDescription desc)` | Store the relevant attributes of the specified JavaBean.
    `void` | `printOpenTag​(java.io.PrintWriter aWriter, int indent, java.lang.Object bean, StoreDescription aDesc)` | Print the open tag for connector attributes (override).
    `void` | `printTag​(java.io.PrintWriter aWriter, int indent, java.lang.Object bean, StoreDescription aDesc)` | Print a tag for connector attributes (override).
    `void` | `printValue​(java.io.PrintWriter writer, int indent, java.lang.String name, java.lang.Object value)` | Print a value but replace certain attribute names.
    `protected void` | `storeConnectorAttributes​(java.io.PrintWriter aWriter, int indent, java.lang.Object bean, StoreDescription aDesc)` | Print Attributes for the connector

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

      `checkAttribute, convertStr, 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 Detail

    - #### replacements

          protected static final java.util.HashMap<java.lang.String,​java.lang.String> replacements

  - ### Constructor Detail

    - #### ConnectorStoreAppender

          public ConnectorStoreAppender()

  - ### Method Detail

    - #### printAttributes

          public void printAttributes​(java.io.PrintWriter writer,
                                      int indent,
                                      boolean include,
                                      java.lang.Object bean,
                                      StoreDescription desc)
                               throws java.lang.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:
        `java.lang.Exception` - if an exception occurs while storing

    - #### getPropertyKeys

          protected java.util.List<java.lang.String> getPropertyKeys​(Connector bean)
                                                              throws java.beans.IntrospectionException

      Get all properties from Connector and current ProtocolHandler.
      Parameters:
        `bean` - The connector
      Returns:
        List of Connector property names
      Throws:
        `java.beans.IntrospectionException` - Error introspecting connector

    - #### storeConnectorAttributes

          protected void storeConnectorAttributes​(java.io.PrintWriter aWriter,
                                                  int indent,
                                                  java.lang.Object bean,
                                                  StoreDescription aDesc)
                                           throws java.lang.Exception

      Print Attributes for the connector
      Parameters:
        `aWriter` - Current writer
        `indent` - Indentation level
        `bean` - The connector bean
        `aDesc` - The connector description
      Throws:
        `java.lang.Exception` - Store error occurred

    - #### printOpenTag

          public void printOpenTag​(java.io.PrintWriter aWriter,
                                   int indent,
                                   java.lang.Object bean,
                                   StoreDescription aDesc)
                            throws java.lang.Exception

      Print the open tag for connector attributes (override).
      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:
        `java.lang.Exception` - A store error occurred
      See Also:
        `StoreAppender.printOpenTag(java.io.PrintWriter, int, java.lang.Object, org.apache.catalina.storeconfig.StoreDescription)`

    - #### printTag

          public void printTag​(java.io.PrintWriter aWriter,
                               int indent,
                               java.lang.Object bean,
                               StoreDescription aDesc)
                        throws java.lang.Exception

      Print a tag for connector attributes (override).
      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:
        `java.lang.Exception` - A store error occurred
      See Also:
        `StoreAppender.printTag(java.io.PrintWriter, int, java.lang.Object, org.apache.catalina.storeconfig.StoreDescription)`

    - #### printValue

          public void printValue​(java.io.PrintWriter writer,
                                 int indent,
                                 java.lang.String name,
                                 java.lang.Object value)

      Print a value but replace certain attribute names.
      Overrides:
        `printValue` in class `StoreAppender`
      Parameters:
        `writer` - PrintWriter to which we are storing
        `indent` - Indentation level
        `name` - Attribute name
        `value` - Attribute value
      See Also:
        `StoreAppender.printValue(java.io.PrintWriter, int, java.lang.String, java.lang.Object)`

    - #### isPrintValue

          public boolean isPrintValue​(java.lang.Object bean,
                                      java.lang.Object bean2,
                                      java.lang.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(java.lang.Object, java.lang.Object, java.lang.String, org.apache.catalina.storeconfig.StoreDescription)`

    - #### getCatalinaBase

          protected java.io.File getCatalinaBase()

    - #### getJkHomeBase

          protected java.io.File getJkHomeBase​(java.lang.String jkHome,
                                               java.io.File appBase)