#ifndef GRAPH_ACCESS_PROXY_H #define GRAPH_ACCESS_PROXY_H #include "data/access/GraphAccess.h" class GraphAccessProxy: public GraphAccess { public: GraphAccessProxy(); virtual ~GraphAccessProxy(); bool hasSubject() const; void setSubject(GraphAccess* subject); // GraphAccess implementation virtual Id getIdForNodeWithName(const std::string& name) const; virtual std::string getNameForNodeWithId(Id id) const; virtual std::vector getNamesForNodesWithNamePrefix(const std::string& prefix) const; virtual std::vector getIdsOfNeighbours(const Id id) const; virtual std::vector> getNeighbourEdgesOfNode(const Id id) const; virtual std::vector> getMemberEdgesOfNode(const Id id) const; virtual std::vector> getUsageEdgesOfNode(const Id id) const; virtual std::vector> getCallEdgesOfNode(const Id id) const; virtual std::vector> getTypeOfEdgesOfNode(const Id id) const; virtual std::vector> getReturnTypeOfEdgesOfNode(const Id id) const; virtual std::vector> getParameterOfEdgesOfNode(const Id id) const; virtual std::vector> getInheritanceEdgesOfNode(const Id id) const; virtual std::pair getNodesOfEdge(const Id id) const; virtual bool checkTokenIsNode(const Id id) const; virtual std::vector getActiveTokenIdsForId(Id tokenId) const; virtual std::vector getLocationIdsForTokenIds(const std::vector& tokenIds) const; virtual std::vector getTokenIdsForQuery(std::string query) const; private: GraphAccess* m_subject; }; #endif // GRAPH_ACCESS_PROXY_H