32#ifndef DRAIN_KEY_MATCHER
33#define DRAIN_KEY_MATCHER
36#include <drain/RegExp.h>
37#include <drain/TypeName.h>
59 const std::string regExpSpecialChars;
75 StringMatcher(
const StringMatcher & matcher) :
value(regExpString),
isRegExp(false){
88 void set(
const std::string & s);
91 StringMatcher & operator=(
const std::string &s){
97 StringMatcher & operator=(
const StringMatcher &s){
105 bool operator==(
const std::string &s)
const {
110 bool operator==(
const char *s)
const {
115 bool operator==(
const StringMatcher &m)
const {
116 return (this->value == m.value) && (this->
isRegExp == m.isRegExp);
123 bool test(
const std::string & s)
const;
125 const std::string & getType()
const;
144std::ostream & operator<<(std::ostream & ostr,
const StringMatcher & m){
149DRAIN_TYPENAME(StringMatcher);
bool empty() const
Returns true, if expression is empty.
Definition RegExp.h:99
General-purpose key matcher: tests string equality, or regExp, if defined as such.
Definition StringMatcher.h:54
void set(const std::string &s)
Assign a string – which may be a literal or a regular expression.
Definition StringMatcher.cpp:46
bool isRegExp
Checks if the key conforms to ODIM convention: DBZH, VRAD, etc. (capital letters, underscores)
Definition StringMatcher.h:137
const std::string & value
A visible reference to the current string / regExp.
Definition StringMatcher.h:62
bool test(const std::string &s) const
Test with direct string matching or regExp, if defined.
Definition StringMatcher.cpp:70
Definition DataSelector.cpp:1277