public abstract class PatternOptimizer
extends java.lang.Object
Constructor and Description |
---|
PatternOptimizer() |
Modifier and Type | Method and Description |
---|---|
protected void |
addPrecondition(RuleEE rule,
java.util.Map<Precondition,java.util.List<RuleEE>> preconditions,
Precondition p) |
protected Characteristic |
allocateCharacteristic(java.util.Map<Characteristic,Characteristic> characteristics,
Characteristic newChic)
Allocate a new characteristic, that is, a property of nodes or other items that may potentially
be used in evaluating the preconditions of more than one pattern.
|
abstract boolean |
appliesTo(Pattern pattern)
Ask whether this pattern optimizer is applicable to a particular pattern
|
abstract void |
process(RuleEE rule,
Pattern pattern,
java.util.Map<Precondition,java.util.List<RuleEE>> preconditions,
java.util.Map<Characteristic,Characteristic> characteristics)
Process a particular pattern, potentially adding to the list of preconditions and characteristics
maintained when processing a set of rules
|
public abstract boolean appliesTo(Pattern pattern)
pattern
- the pattern in questionpublic abstract void process(RuleEE rule, Pattern pattern, java.util.Map<Precondition,java.util.List<RuleEE>> preconditions, java.util.Map<Characteristic,Characteristic> characteristics)
rule
- the rule to be processedpattern
- the pattern used by this rulepreconditions
- a collection of preconditions maintained for a set of rulescharacteristics
- a collection of characteristics maintained for a set of rules.
This is maintained as a map from characteristics
to characteristics in which the key and the value are always the same; the reason for this
curious structure is that when an equivalent characteristic is already present in the map,
we want to return the existing characteristic to replace the new one; a Java Set
does not have any (efficient) operation to "find the existing value in the set that is equal
to X".protected Characteristic allocateCharacteristic(java.util.Map<Characteristic,Characteristic> characteristics, Characteristic newChic)
characteristics
- The set of characteristics to be added to. This maintained as a map from characteristics
to characteristics for reasons explained at process(RuleEE, Pattern, Map, Map)
.newChic
- a new characteristic to be added to the set.protected void addPrecondition(RuleEE rule, java.util.Map<Precondition,java.util.List<RuleEE>> preconditions, Precondition p)
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.