5 #ifndef JODA_POINTERPROVIDER_H
6 #define JODA_POINTERPROVIDER_H
8 #include <rapidjson/fwd.h>
9 #include <rapidjson/pointer.h>
23 std::unique_ptr<IValueProvider>
duplicate()
const override;
24 std::string
toString()
const override;
31 void getAttributes(std::vector<std::string> &vec)
const override;
35 bool isBool()
const override;
38 bool isAny()
const override;
39 std::string
getName()
const override;
48 std::variant<const RJValue, std::optional<const RJValue *>,
58 template <
class Handler>
68 auto res = v->Accept(h);
75 return ptr->Accept(h);
rapidjson::MemoryPoolAllocator< RJBaseAlloc > RJMemoryPoolAlloc
Definition: RJFwd.h:26
rapidjson::GenericPointer< RJValue, RJBaseAlloc > RJPointer
Definition: RJFwd.h:30
rapidjson::GenericValue< RJChar, RJMemoryPoolAlloc > RJValue
Definition: RJFwd.h:29
Definition: RapidJsonDocument.h:22
RJValue const * Get(const RJPointer &ptr) const
Definition: RapidJsonDocument.cpp:56
const std::unique_ptr< ViewLayer > & getView() const
Definition: RapidJsonDocument.cpp:65
bool isView() const
Definition: RapidJsonDocument.cpp:49
Definition: VirtualObject.h:13
Definition: IValueProvider.h:143
Definition: PointerProvider.h:17
const RJValue * getValue(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc) const override
Definition: PointerProvider.cpp:31
bool isBool() const override
Definition: PointerProvider.cpp:38
std::string ptrStr
Definition: PointerProvider.h:55
std::vector< std::string > getAttributes() const override
Definition: PointerProvider.cpp:54
bool isObject() const override
Definition: PointerProvider.cpp:39
RJValue getAtomValue(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc) const override
Definition: PointerProvider.cpp:26
bool objIsPointerEvaluatable(const RapidJsonDocument &json) const
Definition: PointerProvider.cpp:60
bool equalizable() const override
Definition: PointerProvider.cpp:9
bool isConst() const override
Definition: PointerProvider.cpp:25
std::unique_ptr< IValueProvider > duplicate() const override
Definition: PointerProvider.cpp:15
bool isAny() const override
Definition: PointerProvider.cpp:41
const VirtualObject * getVO(const RapidJsonDocument &json) const
Definition: PointerProvider.cpp:65
bool isArray() const override
Definition: PointerProvider.cpp:40
std::string toString() const override
Definition: PointerProvider.cpp:18
bool isString() const override
Definition: PointerProvider.cpp:36
bool Accept(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc, Handler &h) const
Definition: PointerProvider.h:59
std::string getAttributeString() const
Definition: PointerProvider.cpp:22
bool comparable() const override
Definition: PointerProvider.cpp:8
IValueType getReturnType() const override
Definition: PointerProvider.cpp:45
PointerProvider(const std::string &str)
Definition: PointerProvider.cpp:11
std::variant< const RJValue, std::optional< const RJValue * >, const VirtualObject * > getPointerIfExists(const RapidJsonDocument &json, RJMemoryPoolAlloc &alloc) const
Definition: PointerProvider.cpp:75
bool isNumber() const override
Definition: PointerProvider.cpp:37
std::string getName() const override
Definition: PointerProvider.cpp:43
RJPointer pointer
Definition: PointerProvider.h:54
Definition: AttributeStatAggregator.h:12
IValueType
Definition: IValueProvider.h:33