#ifndef STORAGE_ACCESS_H #define STORAGE_ACCESS_H #include #include #include #include "utility/types.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/storage/StorageStats.h" #include "data/tooltip/TooltipInfo.h" #include "data/tooltip/TooltipOrigin.h" class FilePath; class Graph; class SourceLocationCollection; class SourceLocationFile; class TextAccess; struct FileInfo; 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 Id getIdForEdge( Edge::EdgeType type, const NameHierarchy& fromNameHierarchy, const NameHierarchy& toNameHierarchy) const = 0; virtual StorageEdge getEdgeById(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, Node::NodeTypeMask filter) const = 0; virtual std::vector getSearchMatchesForTokenIds(const std::vector& tokenIds) const = 0; virtual std::shared_ptr getGraphForAll() const = 0; virtual std::shared_ptr getGraphForFilter(Node::NodeTypeMask filter) const = 0; virtual std::shared_ptr getGraphForActiveTokenIds( const std::vector& tokenIds, const std::vector& expandedNodeIds, bool* isActiveNamespace = nullptr) const = 0; virtual std::shared_ptr getGraphForChildrenOfNodeId(Id nodeId) const = 0; virtual std::shared_ptr getGraphForTrail(Id originId, Id targetId, Edge::EdgeTypeMask trailType, size_t depth) 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 FilePath& 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 getErrorsLimited() const = 0; virtual std::shared_ptr getErrorSourceLocationsLimited(std::vector* errors) const = 0; virtual void setErrorFilter(const ErrorFilter& filter); // todo: remove bookmark related methods from storage access virtual Id addNodeBookmark(const NodeBookmark& bookmark) = 0; virtual Id addEdgeBookmark(const EdgeBookmark& bookmark) = 0; virtual Id addBookmarkCategory(const std::string& categoryName) = 0; virtual void updateBookmark( const Id bookmarkId, const std::string& name, const std::string& comment, const std::string& categoryName) = 0; virtual void removeBookmark(const Id id) = 0; virtual void removeBookmarkCategory(const Id id) = 0; virtual std::vector getAllNodeBookmarks() const = 0; virtual std::vector getAllEdgeBookmarks() const = 0; virtual std::vector getAllBookmarkCategories() const = 0; virtual TooltipInfo getTooltipInfoForTokenIds(const std::vector& tokenIds, TooltipOrigin origin) const = 0; virtual TooltipInfo getTooltipInfoForSourceLocationIdsAndLocalSymbolIds( const std::vector& locationIds, const std::vector& localSymbolIds) const = 0; protected: ErrorFilter m_errorFilter; }; #endif // STORAGE_ACCESS_H