Package org.apache.catalina.storeconfig

## Class StoreContextAppender

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

-     public class StoreContextAppender
      extends StoreAppender

  store StandardContext Attributes ...

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `defaultInstance​(Object bean)` | Generate a real default StandardContext TODO read and interpret the default context.xml and context.xml.default TODO Cache a Default StandardContext ( with reloading strategy) TODO remove really all elements, but detection is hard...
    `protected File` | `getAppBase​(StandardHost host)` |
    `protected String` | `getDefaultWorkDir​(StandardContext context)` | Make default Work Dir.
    `protected File` | `getDocBase​(StandardContext context, File appBase)` |
    `boolean` | `isPrintValue​(Object bean, Object bean2, String attrName, StoreDescription desc)` | Print Context Values.
    `protected void` | `printAttribute​(PrintWriter writer, int indent, Object bean, StoreDescription desc, String attributeName, Object bean2, Object value)` | Store the specified of the specified JavaBean.

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

      `checkAttribute, isPersistable, printAttributes, printAttributes, printCloseTag, printIndent, printOpenTag, printTag, printTagArray, printTagContent, printTagValueArray, printValue`

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

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

- - ### Constructor Detail

    - #### StoreContextAppender

          public StoreContextAppender()

  - ### Method Detail

    - #### 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. Adds special handling for `docBase`.
      Overrides:
        `printAttribute` in class `StoreAppender`
      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)

      Print Context Values.
      - Special handling to default workDir.
      - Don't save path at external context.xml
      - Don't generate docBase for host.appBase webapps
      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)`

    - #### getAppBase

          protected File getAppBase​(StandardHost host)

    - #### getDocBase

          protected File getDocBase​(StandardContext context,
                                    File appBase)

    - #### getDefaultWorkDir

          protected String getDefaultWorkDir​(StandardContext context)

      Make default Work Dir.
      Parameters:
        `context` - The context
      Returns:
        The default working directory for the context.

    - #### defaultInstance

          public Object defaultInstance​(Object bean)
                                 throws ReflectiveOperationException

      Generate a real default StandardContext TODO read and interpret the default context.xml and context.xml.default TODO Cache a Default StandardContext ( with reloading strategy) TODO remove really all elements, but detection is hard... To Listener or Valve from same class?
      Overrides:
        `defaultInstance` in class `StoreAppender`
      Parameters:
        `bean` - The bean
      Returns:
        an object from same class as bean parameter
      Throws:
        `ReflectiveOperationException` - Error creating a new instance
      See Also:
        `StoreAppender.defaultInstance(java.lang.Object)`