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

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, convertStr, 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 Details

### StoreContextAppender

public StoreContextAppender()

## Method Details

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