searchPattern.hh 864 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include <string>
  3. class JSonElement;
  4. class SearchPattern
  5. {
  6. public:
  7. SearchPattern(const char *);
  8. SearchPattern(const std::wstring &);
  9. ~SearchPattern();
  10. bool isEmpty() const;
  11. bool match(const std::string &other, const JSonElement *) const;
  12. /**
  13. * Comparison function, for std::search use
  14. **/
  15. bool operator()(char a, char b);
  16. private:
  17. void init(const char *);
  18. void evalFlags(const char *);
  19. std::string pattern;
  20. short flags;
  21. short typeFlag;
  22. static const short FLAG_CASE;
  23. static const short FLAG_WHOLEWORD;
  24. static const short FLAG_WHOLESTR;
  25. static const short TYPE_BOOL;
  26. static const short TYPE_NUMBER;
  27. static const short TYPE_STRING;
  28. static const short TYPE_OBJKEY;
  29. };