Package ch.qos.logback.core.joran.spi

# Class Interpreter

java.lang.Object
ch.qos.logback.core.joran.spi.Interpreter

public class Interpreter extends Object
<id>Interpreter</id> is Joran's main driving class. It extends SAX `DefaultHandler` which invokes various `actions` according to predefined patterns.

Patterns are kept in a `RuleStore` which is programmed to store and then later produce the applicable actions for a given pattern.

The pattern corresponding to a top level <a> element is the string <id>"a"</id>.

The pattern corresponding to an element <b> embedded within a top level <a> element is the string <id>"a/b"</id>.

The pattern corresponding to an <b> and any level of nesting is "*/b. Thus, the * character placed at the beginning of a pattern serves as a wildcard for the level of nesting. Conceptually, this is very similar to the API of commons-digester. Joran offers several small advantages. First and foremost, it offers support for implicit actions which result in a significant leap in flexibility. Second, in our opinion better error reporting capability. Third, it is self-reliant. It does not depend on other APIs, in particular commons-logging which is too unreliable. Last but not least, Joran is quite tiny and is expected to remain so.

Author:
  Ceki Gülcü

## Constructor Summary

Constructors
Constructor
Description
`Interpreter(Context context, RuleStore rs, ElementPath initialElementPath)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addImplicitAction(ImplicitAction ia)`
`void`
`characters(BodyEvent be)`
`void`
`endElement(EndEvent endEvent)`
`EventPlayer`
`getEventPlayer()`
`InterpretationContext`
`getExecutionContext()`
Deprecated.
replaced by `getInterpretationContext()`
`InterpretationContext`
`getInterpretationContext()`
`Locator`
`getLocator()`
`RuleStore`
`getRuleStore()`
`void`
`setDocumentLocator(Locator l)`
`void`
`setInterpretationContextPropertiesMap(Map<String,String> propertiesMap)`
`void`
`startDocument()`
`void`
`startElement(StartEvent se)`

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

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

## Constructor Details

### Interpreter

public Interpreter(Context context, RuleStore rs, ElementPath initialElementPath)

## Method Details

### getEventPlayer

public EventPlayer getEventPlayer()

### setInterpretationContextPropertiesMap

public void setInterpretationContextPropertiesMap(Map<String,String> propertiesMap)

### getExecutionContext

public InterpretationContext getExecutionContext()
Deprecated.
replaced by `getInterpretationContext()`

### getInterpretationContext

public InterpretationContext getInterpretationContext()

### startDocument

public void startDocument()

### startElement

public void startElement(StartEvent se)

### characters

public void characters(BodyEvent be)

### endElement

public void endElement(EndEvent endEvent)

### getLocator

public Locator getLocator()

### setDocumentLocator

public void setDocumentLocator(Locator l)

### addImplicitAction

public void addImplicitAction(ImplicitAction ia)

### getRuleStore

public RuleStore getRuleStore()