public class MultiPatternMatcher<T>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
MultiPatternMatcher.BasicSequencePatternTrigger<T>
Simple SequencePatternTrigger that looks at each node, and identifies which
patterns may potentially match each node, and then aggregates (union)
all these patterns together.
|
static interface |
MultiPatternMatcher.NodePatternTrigger<T>
A function which returns a collections of patterns that may match when
given a single node from a larger sequence.
|
static interface |
MultiPatternMatcher.SequencePatternTrigger<T>
A function which returns a collections of patterns that may match when
a sequence of nodes.
|
Constructor and Description |
---|
MultiPatternMatcher(java.util.Collection<SequencePattern<T>> patterns) |
MultiPatternMatcher(MultiPatternMatcher.SequencePatternTrigger<T> patternTrigger,
java.util.Collection<? extends SequencePattern<T>> patterns) |
MultiPatternMatcher(MultiPatternMatcher.SequencePatternTrigger<T> patternTrigger,
SequencePattern<T>... patterns) |
MultiPatternMatcher(SequencePattern<T>... patterns) |
Modifier and Type | Method and Description |
---|---|
java.util.List<SequenceMatchResult<T>> |
find(java.util.List<? extends T> elements,
SequenceMatcher.FindType findType)
Given a sequence, applies our patterns over the sequence and returns
all matches, depending on the findType.
|
java.lang.Iterable<SequenceMatchResult<T>> |
findAllNonOverlappingMatchesPerPattern(java.util.List<? extends T> elements)
Given a sequence, applies each of our patterns over the sequence and returns
all non overlapping matches for each of the patterns.
|
java.util.List<SequenceMatchResult<T>> |
findNonOverlapping(java.util.List<? extends T> elements)
Given a sequence, applies our patterns over the sequence and returns
all non overlapping matches.
|
java.util.List<SequenceMatchResult<T>> |
findNonOverlapping(java.util.List<? extends T> elements,
java.util.Comparator<? super SequenceMatchResult> cmp)
Given a sequence, applies our patterns over the sequence and returns
all non overlapping matches.
|
java.util.List<SequenceMatchResult<T>> |
findNonOverlappingMaxScore(java.util.List<? extends T> elements)
Given a sequence, applies our patterns over the sequence and returns
all non overlapping matches.
|
java.util.List<SequenceMatchResult<T>> |
findNonOverlappingMaxScore(java.util.List<? extends T> elements,
java.util.function.ToDoubleFunction<? super SequenceMatchResult> scorer)
Given a sequence, applies our patterns over the sequence and returns
all non overlapping matches.
|
java.util.Collection<SequencePattern<T>> |
getTriggeredPatterns(java.util.List<? extends T> elements)
Given a sequence, return the collection of patterns that are triggered by the sequence
(these patterns are the ones that may potentially match a subsequence in the sequence)
|
boolean |
isMatchWithResult() |
void |
setMatchWithResult(boolean matchWithResult) |
public MultiPatternMatcher(MultiPatternMatcher.SequencePatternTrigger<T> patternTrigger, java.util.Collection<? extends SequencePattern<T>> patterns)
@SafeVarargs public MultiPatternMatcher(MultiPatternMatcher.SequencePatternTrigger<T> patternTrigger, SequencePattern<T>... patterns)
public MultiPatternMatcher(java.util.Collection<SequencePattern<T>> patterns)
@SafeVarargs public MultiPatternMatcher(SequencePattern<T>... patterns)
public java.util.List<SequenceMatchResult<T>> findNonOverlapping(java.util.List<? extends T> elements)
elements
- input sequence to match againstpublic java.util.List<SequenceMatchResult<T>> findNonOverlapping(java.util.List<? extends T> elements, java.util.Comparator<? super SequenceMatchResult> cmp)
elements
- input sequence to match againstcmp
- comparator indicating order that overlapped sequences should be selected.public java.util.List<SequenceMatchResult<T>> find(java.util.List<? extends T> elements, SequenceMatcher.FindType findType)
elements
- input sequence to match againstfindType
- whether FindType.FIND_ALL or FindType.FIND_NONOVERLAPPINGpublic java.util.List<SequenceMatchResult<T>> findNonOverlappingMaxScore(java.util.List<? extends T> elements)
elements
- input sequence to match againstpublic java.util.List<SequenceMatchResult<T>> findNonOverlappingMaxScore(java.util.List<? extends T> elements, java.util.function.ToDoubleFunction<? super SequenceMatchResult> scorer)
elements
- input sequence to match againstscorer
- scorer for scoring each matchpublic java.lang.Iterable<SequenceMatchResult<T>> findAllNonOverlappingMatchesPerPattern(java.util.List<? extends T> elements)
elements
- input sequence to match againstpublic java.util.Collection<SequencePattern<T>> getTriggeredPatterns(java.util.List<? extends T> elements)
elements
- Input sequencepublic boolean isMatchWithResult()
public void setMatchWithResult(boolean matchWithResult)