26#include <unordered_map>
27#include <unordered_set>
41 using TagMap = std::unordered_map<TagId, std::string>;
85 return !condition->Evaluate(tagMap);
104 std::list<TagConditionRef> conditions;
137 return tagMap.find(tag)!=tagMap.end();
159 std::string tagStringValue;
165 const std::string& tagValue);
168 const size_t& tagValue);
183 std::unordered_set<std::string> tagValues;
213 const std::string& name);
234 std::vector<TagInfo> tags;
238 std::unordered_map<std::string,TagId> stringToTagMap;
239 std::unordered_map<TagId,uint32_t> nameTagIdToPrioMap;
240 std::unordered_map<TagId,uint32_t> nameAltTagIdToPrioMap;
241 std::unordered_map<std::string,uint8_t> nameToMaxSpeedMap;
243 std::unordered_map<std::string,size_t> surfaceToGradeMap;
260 uint32_t& priority)
const;
262 uint32_t& priority)
const;
275 size_t& grade)
const;
285 uint8_t& maxSpeed)
const;
#define CLASS_FINAL
Definition Compiler.h:26
#define OSMSCOUT_API
Definition CoreImportExport.h:45
bool GetMaxSpeedFromAlias(const std::string &alias, uint8_t &maxSpeed) const
bool GetGradeForSurface(const std::string &surfaceValue, size_t &grade) const
void RegisterMaxSpeedAlias(const std::string &alias, uint8_t maxSpeed)
TagId RegisterNameAltTag(const std::string &tagName, uint32_t priority)
TagId GetTagId(const std::string &name) const
bool IsNameAltTag(TagId tag, uint32_t &priority) const
bool IsNameTag(TagId tag, uint32_t &priority) const
TagId RegisterNameTag(const std::string &tagName, uint32_t priority)
void RegisterSurfaceToGradeMapping(const std::string &surface, size_t grade)
TagId GetTagId(const char *name) const
TagId RegisterTag(const std::string &tagName)
TagBinaryCondition(TagId tag, BinaryOperator binaryOperator, const size_t &tagValue)
bool Evaluate(const TagMap &tagMap) const override
TagBinaryCondition(TagId tag, BinaryOperator binaryOperator, const std::string &tagValue)
void AddCondition(const TagConditionRef &condition)
TagBoolCondition(Type type)
@ boolAnd
Definition Tag.h:99
@ boolOr
Definition Tag.h:100
bool Evaluate(const TagMap &tagMap) const override
virtual bool Evaluate(const TagMap &tagMap) const =0
virtual ~TagCondition()=default
bool Evaluate(const TagMap &tagMap) const override
Definition Tag.h:135
TagExistsCondition(TagId tag)
TagId GetId() const
Definition Tag.h:223
TagInfo(TagId id, const std::string &name)
std::string GetName() const
Definition Tag.h:215
bool Evaluate(const TagMap &tagMap) const override
void AddTagValue(const std::string &tagValue)
TagIsInCondition(TagId tag)
bool Evaluate(const TagMap &tagMap) const override
Definition Tag.h:83
TagNotCondition(const TagConditionRef &condition)
std::shared_ptr< TagIsInCondition > TagIsInConditionRef
Definition Tag.h:198
std::shared_ptr< TagBoolCondition > TagBoolConditionRef
Definition Tag.h:120
static const TagId tagIgnore
Definition Tag.h:48
std::shared_ptr< TagCondition > TagConditionRef
Definition Tag.h:68
std::unordered_map< TagId, std::string > TagMap
Definition Tag.h:41
BinaryOperator
Definition Parsing.h:32
uint16_t TagId
Definition Tag.h:39