Package org.kahina.core.data.agent.patterns

Contains classes that implement patterns on step information for the breakpoint system.

See: Description

Package org.kahina.core.data.agent.patterns Description

Contains classes that implement patterns on step information for the breakpoint system.

Kahina's breakpoint system is built around the definition of patterns on step content, which can be combined using boolean connectives, and then used as elementary patterns to define patterns in a step tree.

The KahinaSimpleProperty class is used to encode (boolean combinations of) node patterns. At the moment, string comparisons (including regular expressions) are allowed for matching step descriptions and edge labels in a step tree, and integer relations allow to match a step's ID and status values. TreeNodePatterns can be grouped recursively to boolean combinations using the negation, conjunction, disjunction, and implication connectives.

Tree patterns are represented directly by instances of TreePattern, a tree structure with nodes of type TreePatternNode, where each node is associated with an TreeNodePattern.

In order to make tree pattern matches efficiently computable, tree patterns are compiled into tree automata. A TreeAutomaton keeps track of the changes in a KahinaTree object, firing a KahinaTreeMatchEvent in case the tree pattern it encodes is matched by.

Internally a TreeAutomaton is defined a collection of rules, and maintains annotations of the nodes in a KahinaTree. The rules are represented by instances of TreeAutomatonRule, each of which combines a TreeNodePattern with a set of required annotations for the matched node's children. During breakpoint compilation an editing, PatternFormatExceptions are used to inform the interface components about specification errors for user feedback.

Since:
1.0