libosmscout
1.1.1
Toggle main menu visibility
Loading...
Searching...
No Matches
libosmscout
include
osmscout
util
StringMatcher.h
Go to the documentation of this file.
1
#ifndef OSMSCOUT_UTIL_STRINGMATCHER_H
2
#define OSMSCOUT_UTIL_STRINGMATCHER_H
3
4
/*
5
This source is part of the libosmscout library
6
Copyright (C) 2017 Tim Teulings
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
License as published by the Free Software Foundation; either
11
version 2.1 of the License, or (at your option) any later version.
12
13
This library is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
Lesser General Public License for more details.
17
18
You should have received a copy of the GNU Lesser General Public
19
License along with this library; if not, write to the Free Software
20
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
*/
22
23
#include <memory>
24
#include <string>
25
26
#include <
osmscout/lib/CoreImportExport.h
>
27
28
namespace
osmscout
{
29
30
class
OSMSCOUT_API
StringMatcher
31
{
32
public
:
33
enum
Result
34
{
35
noMatch
,
36
partialMatch
,
37
match
38
};
39
40
public
:
41
virtual
~StringMatcher
() =
default
;
42
43
virtual
Result
Match
(
const
std::string& text)
const
= 0;
44
};
45
46
using
StringMatcherRef
= std::shared_ptr<StringMatcher>;
47
48
class
OSMSCOUT_API
StringMatcherCI
:
public
StringMatcher
49
{
50
private
:
51
std::string pattern;
52
53
public
:
54
explicit
StringMatcherCI
(
const
std::string& pattern);
55
56
Result
Match
(
const
std::string& text)
const override
;
57
};
58
59
class
OSMSCOUT_API
StringMatcherFactory
60
{
61
public
:
62
virtual
~StringMatcherFactory
() =
default
;
63
64
virtual
StringMatcherRef
CreateMatcher
(
const
std::string& pattern)
const
= 0;
65
};
66
67
using
StringMatcherFactoryRef
= std::shared_ptr<StringMatcherFactory>;
68
69
class
OSMSCOUT_API
StringMatcherCIFactory
:
public
StringMatcherFactory
70
{
71
public
:
72
StringMatcherRef
CreateMatcher
(
const
std::string& pattern)
const override
;
73
};
74
75
class
StringMatcherTransliterate
:
public
StringMatcher
76
{
77
private
:
78
std::string pattern;
79
std::string transliteratedPattern;
80
81
public
:
82
explicit
StringMatcherTransliterate
(
const
std::string &pattern);
83
84
StringMatcher::Result
Match
(
const
std::string &text)
const override
;
85
};
86
87
class
OSMSCOUT_API
StringMatcherTransliterateFactory
:
public
StringMatcherFactory
88
{
89
public
:
90
StringMatcherRef
CreateMatcher
(
const
std::string& pattern)
const override
;
91
};
92
93
}
94
#endif
CoreImportExport.h
OSMSCOUT_API
#define OSMSCOUT_API
Definition
CoreImportExport.h:45
osmscout::StringMatcherCIFactory
Definition
StringMatcher.h:70
osmscout::StringMatcherCIFactory::CreateMatcher
StringMatcherRef CreateMatcher(const std::string &pattern) const override
osmscout::StringMatcherCI::StringMatcherCI
StringMatcherCI(const std::string &pattern)
osmscout::StringMatcherCI::Match
Result Match(const std::string &text) const override
osmscout::StringMatcherFactory
Definition
StringMatcher.h:60
osmscout::StringMatcherFactory::CreateMatcher
virtual StringMatcherRef CreateMatcher(const std::string &pattern) const =0
osmscout::StringMatcherFactory::~StringMatcherFactory
virtual ~StringMatcherFactory()=default
osmscout::StringMatcher
Definition
StringMatcher.h:31
osmscout::StringMatcher::Result
Result
Definition
StringMatcher.h:34
osmscout::StringMatcher::noMatch
@ noMatch
Definition
StringMatcher.h:35
osmscout::StringMatcher::partialMatch
@ partialMatch
Definition
StringMatcher.h:36
osmscout::StringMatcher::match
@ match
Definition
StringMatcher.h:37
osmscout::StringMatcher::~StringMatcher
virtual ~StringMatcher()=default
osmscout::StringMatcher::Match
virtual Result Match(const std::string &text) const =0
osmscout::StringMatcherTransliterateFactory
Definition
StringMatcher.h:88
osmscout::StringMatcherTransliterateFactory::CreateMatcher
StringMatcherRef CreateMatcher(const std::string &pattern) const override
osmscout::StringMatcherTransliterate::StringMatcherTransliterate
StringMatcherTransliterate(const std::string &pattern)
osmscout::StringMatcherTransliterate::Match
StringMatcher::Result Match(const std::string &text) const override
osmscout
Definition
Area.h:39
osmscout::StringMatcherRef
std::shared_ptr< StringMatcher > StringMatcherRef
Definition
StringMatcher.h:46
osmscout::StringMatcherFactoryRef
std::shared_ptr< StringMatcherFactory > StringMatcherFactoryRef
Definition
StringMatcher.h:67
Generated by
1.17.0