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 and Description
`Interpreter(Context context, RuleStore rs, ElementPath initialElementPath)`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`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 Detail

#### Interpreter

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

### Method Detail

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