public class PatternMatchingClassifier<T> extends java.lang.Object implements Classifier<java.lang.String,T>
Classifier that maps from String patterns with wildcards to a set
of values of a given type. An input String is matched with the most specific
pattern possible to the corresponding value in an input map. A default value
should be specified with a pattern key of "*".| Modifier and Type | Field and Description |
|---|---|
private PatternMatcher<T> |
values |
| Constructor and Description |
|---|
PatternMatchingClassifier()
Default constructor.
|
PatternMatchingClassifier(java.util.Map<java.lang.String,T> values)
Create a classifier from the provided map.
|
| Modifier and Type | Method and Description |
|---|---|
T |
classify(java.lang.String classifiable)
Classify the input by matching it against the patterns provided in
setPatternMap(Map). |
void |
setPatternMap(java.util.Map<java.lang.String,T> values)
A map from pattern to value
|
private PatternMatcher<T> values
public PatternMatchingClassifier()
public PatternMatchingClassifier(java.util.Map<java.lang.String,T> values)
values - public void setPatternMap(java.util.Map<java.lang.String,T> values)
values - the pattern map to setpublic T classify(java.lang.String classifiable)
setPatternMap(Map). The most specific pattern that matches will
be used to locate a value.classify in interface Classifier<java.lang.String,T>classifiable - the input object. Can be null.java.lang.IllegalStateException - if no matching value is found.