#ifndef STORAGE_ACCESS_H #define STORAGE_ACCESS_H #include #include #include #include "utility/types.h" #include "utility/file/FileInfo.h" #include "utility/file/FilePath.h" #include "data/bookmark/Bookmark.h" #include "data/bookmark/BookmarkCategory.h" #include "data/bookmark/EdgeBookmark.h" #include "data/bookmark/NodeBookmark.h" #include "data/graph/Node.h" #include "data/search/SearchMatch.h" #include "data/ErrorCountInfo.h" #include "data/ErrorFilter.h" #include "data/ErrorInfo.h" #include "data/StorageStats.h" class Graph; class SourceLocationCollection; class SourceLocationFile; class TextAccess; class StorageAccess { public: virtual ~StorageAccess(); virtual Id getNodeIdForFileNode(const FilePath& filePath) const = 0; virtual Id getNodeIdForNameHierarchy(const NameHierarchy& nameHierarchy) const = 0; virtual std::vector getNodeIdsForNameHierarchies(const std::vector nameHierarchies) const = 0; virtual NameHierarchy getNameHierarchyForNodeId(Id id) const = 0; virtual std::vector getNameHierarchiesForNodeIds(const std::vector nodeIds) const = 0; virtual Node::NodeType getNodeTypeForNodeWithId(Id id) const = 0; virtual bool checkNodeExistsByName(const std::string& serializedName) const = 0; virtual Id getIdForEdge( Edge::EdgeType type, const NameHierarchy& fromNameHierarchy, const NameHierarchy& toNameHierarchy) const = 0; virtual StorageEdge getEdgeById(Id edgeId) const = 0; virtual bool checkEdgeExists(Id edgeId) const = 0; virtual std::shared_ptr getFullTextSearchLocations( const std::string& searchTerm, bool caseSensitive) const = 0; virtual std::vector getAutocompletionMatches(const std::string& query) const = 0; virtual std::vector getSearchMatchesForTokenIds(const std::vector& tokenIds) const = 0; virtual std::shared_ptr getGraphForAll() const = 0; virtual std::shared_ptr getGraphForActiveTokenIds(const std::vector& tokenIds, bool* isActiveNamespace = nullptr) const = 0; virtual std::vector getActiveTokenIdsForId(Id tokenId, Id* declarationId) const = 0; virtual std::vector getNodeIdsForLocationIds(const std::vector& locationIds) const = 0; virtual std::shared_ptr getSourceLocationsForTokenIds( const std::vector& tokenIds) const = 0; virtual std::shared_ptr getSourceLocationsForLocationIds( const std::vector& locationIds) const = 0; virtual std::shared_ptr getSourceLocationsForFile(const FilePath& filePath) const = 0; virtual std::shared_ptr getSourceLocationsForLinesInFile( const std::string& filePath, uint firstLineNumber, uint lastLineNumber) const = 0; virtual std::shared_ptr getCommentLocationsInFile(const FilePath& filePath) const = 0; virtual std::shared_ptr getFileContent(const FilePath& filePath) const = 0; virtual FileInfo getFileInfoForFilePath(const FilePath& filePath) const = 0; virtual std::vector getFileInfosForFilePaths(const std::vector& filePaths) const = 0; virtual StorageStats getStorageStats() const = 0; virtual ErrorCountInfo getErrorCount() const = 0; virtual std::vector getErrors() const = 0; virtual std::shared_ptr getErrorSourceLocations(std::vector* errors) const = 0; virtual void setErrorFilter(const ErrorFilter& filter); virtual Id addNodeBookmark(const NodeBookmark& bookmark) = 0; virtual Id addEdgeBookmark(const EdgeBookmark& bookmark) = 0; virtual Id addBookmarkCategory(const BookmarkCategory& category) = 0; virtual std::vector getAllNodeBookmarks() const = 0; virtual NodeBookmark getNodeBookmarkById(const Id bookmarkId) const = 0; virtual bool checkNodeBookmarkExistsByTokens(const std::vector& tokenNames) const = 0; virtual void removeNodeBookmark(Id id) = 0; virtual void editNodeBookmark(const NodeBookmark& bookmark) = 0; virtual std::vector getAllEdgeBookmarks() const = 0; virtual EdgeBookmark getEdgeBookmarkById(const Id bookmarkId) const = 0; virtual bool checkEdgeBookmarkExistsByTokens(const std::vector& tokenNames) const = 0; virtual void removeEdgeBookmark(Id id) = 0; virtual void editEdgeBookmark(const EdgeBookmark& bookmark) = 0; virtual std::vector getAllBookmarkCategories() const = 0; virtual bool checkBookmarkCategoryExists(const std::string& name) const = 0; virtual void removeBookmarkCategory(Id id) = 0; protected: ErrorFilter m_errorFilter; }; #endif // STORAGE_ACCESS_H