jsonElement.hh 680 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * jsonElement.hh for jsonstroller
  3. *
  4. * Author: isundil <isundill@gmail.com>
  5. **/
  6. #pragma once
  7. #include <string>
  8. class JSonContainer;
  9. class JSonElement
  10. {
  11. public:
  12. JSonElement(JSonElement *parent);
  13. virtual ~JSonElement();
  14. virtual std::string stringify() const =0;
  15. unsigned int getLevel() const;
  16. JSonElement *getParent();
  17. const JSonElement *getParent() const;
  18. void setParent(JSonElement *parent);
  19. const JSonElement *findPrev() const;
  20. const JSonElement *findNext() const;
  21. virtual bool match(const std::string &) const;
  22. private:
  23. JSonElement();
  24. JSonElement *parent;
  25. };