#ifndef STORAGE_ACCESS_H #define STORAGE_ACCESS_H #include #include #include #include "utility/types.h" #include "data/graph/Node.h" #include "data/search/SearchMatch.h" class Graph; class TokenLocation; class TokenLocationCollection; class TokenLocationFile; class StorageAccess { public: virtual ~StorageAccess(); virtual Id getIdForNodeWithName(const std::string& name) const = 0; virtual std::string getNameForNodeWithId(Id id) const = 0; virtual Node::NodeType getNodeTypeForNodeWithId(Id id) const = 0; virtual std::vector getAutocompletionMatches( const std::string& query, const std::string& word) const = 0; virtual std::shared_ptr getGraphForActiveTokenIds(const std::vector& tokenIds) const = 0; virtual std::vector getActiveTokenIdsForId(Id tokenId, Id* declarationId) const = 0; virtual std::vector getActiveTokenIdsForLocationId(Id locationId) const = 0; virtual std::vector getTokenIdsForQuery(std::string query) const = 0; virtual TokenLocationCollection getTokenLocationsForTokenIds(const std::vector& tokenIds) const = 0; virtual std::shared_ptr getTokenLocationsForFile(const std::string& filePath) const = 0; virtual std::shared_ptr getTokenLocationsForLinesInFile( const std::string& filePath, uint firstLineNumber, uint lastLineNumber) const = 0; virtual TokenLocationCollection getErrorTokenLocations(std::vector* errorMessages) const = 0; virtual std::shared_ptr getTokenLocationOfParentScope(const TokenLocation* child) const = 0; }; #endif // STORAGE_ACCESS_H