public class MetaFilter extends Object
Allows filtering on meta info.
A filter is uniquely identified by its String representation which is parsed
and matched by the MetaFilter.MetaMatcher
to determine if the Meta
is
allowed or not.
The MetaFilter.DefaultMetaMatcher
interprets the filter as a sequence of any
name-value properties (separated by a space), prefixed by "+" for inclusion
and "-" for exclusion. E.g.:
MetaFilter filter = new MetaFilter( "+author Mauro -theme smoke testing +map *API -skip"); filter.allow(new Meta(asList("map someAPI")));
The use of the MetaFilter.GroovyMetaMatcher
is triggered by the prefix "groovy:"
and allows the filter to be interpreted as a Groovy expression.
MetaFilter filter = new MetaFilter( "groovy: (a == '11' | a == '22') && b == '33'");
Custom MetaFilter.MetaMatcher
instances can also be provided as a map, indexed
by the prefix used in the filter content:
Map<String, MetaMatcher> customMatchers = new HashMap<>(); customMatchers.put("ruby:", new RubyMetaMatcher()); MetaFilter filter = new MetaFilter("ruby: # some ruby script", customMatchers);
Custom MetaMatcher instances, when they are matched by the prefix of the filter content, will take precedence over the Groovy or default matchers.
Modifier and Type | Class and Description |
---|---|
class |
MetaFilter.DefaultMetaMatcher |
class |
MetaFilter.GroovyMetaMatcher |
static interface |
MetaFilter.MetaMatcher |
Modifier and Type | Field and Description |
---|---|
static MetaFilter |
EMPTY |
Constructor and Description |
---|
MetaFilter() |
MetaFilter(String filterAsString) |
MetaFilter(String filterAsString,
EmbedderMonitor monitor) |
MetaFilter(String filterAsString,
EmbedderMonitor monitor,
Map<String,MetaFilter.MetaMatcher> metaMatchers) |
MetaFilter(String filterAsString,
Map<String,MetaFilter.MetaMatcher> metaMatchers) |
Modifier and Type | Method and Description |
---|---|
boolean |
allow(Meta meta) |
String |
asString() |
protected MetaFilter.MetaMatcher |
createMetaMatcher(String filterAsString,
Map<String,MetaFilter.MetaMatcher> metaMatchers)
Creates a MetaMatcher based on the filter content.
|
boolean |
isEmpty() |
MetaFilter.MetaMatcher |
metaMatcher() |
String |
toString() |
public static final MetaFilter EMPTY
public MetaFilter()
public MetaFilter(String filterAsString)
public MetaFilter(String filterAsString, EmbedderMonitor monitor)
public MetaFilter(String filterAsString, Map<String,MetaFilter.MetaMatcher> metaMatchers)
public MetaFilter(String filterAsString, EmbedderMonitor monitor, Map<String,MetaFilter.MetaMatcher> metaMatchers)
protected MetaFilter.MetaMatcher createMetaMatcher(String filterAsString, Map<String,MetaFilter.MetaMatcher> metaMatchers)
filterAsString
- the String representation of the filtermetaMatchers
- the Map of custom MetaMatcherspublic boolean allow(Meta meta)
public MetaFilter.MetaMatcher metaMatcher()
public String asString()
public boolean isEmpty()
Copyright © 2003–2016. All rights reserved.