#ifndef STORAGE_ACCESS_PROXY_H #define STORAGE_ACCESS_PROXY_H #include "data/access/StorageAccess.h" class StorageAccessProxy: public StorageAccess { public: StorageAccessProxy(); virtual ~StorageAccessProxy(); bool hasSubject() const; void setSubject(StorageAccess* subject); // StorageAccess implementation virtual Id getIdForNodeWithName(const std::string& name) const; virtual std::string getNameForNodeWithId(Id id) const; virtual Node::NodeType getNodeTypeForNodeWithId(Id id) const; virtual std::vector getAutocompletionMatches( const std::string& query, const std::string& word) const; virtual std::shared_ptr getGraphForActiveTokenIds(const std::vector& tokenIds) const; virtual std::vector getActiveTokenIdsForId(Id tokenId, Id* declarationId) const; virtual std::vector getActiveTokenIdsForLocationId(Id locationId) const; virtual std::vector getTokenIdsForQuery(std::string query) const; virtual TokenLocationCollection getTokenLocationsForTokenIds(const std::vector& tokenIds) const; virtual TokenLocationFile getTokenLocationsForFile(const std::string& filePath) const; virtual TokenLocationFile getTokenLocationsForLinesInFile( const std::string& filePath, uint firstLineNumber, uint lastLineNumber ) const; virtual TokenLocationCollection getErrorTokenLocations(std::vector* errorMessages) const; private: StorageAccess* m_subject; }; #endif // STORAGE_ACCESS_PROXY_H