FOSSredder 0.5.0
Loading...
Searching...
No Matches
IAnalysisRepository.h
Go to the documentation of this file.
1
5
6#pragma once
7
8#include <memory>
9#include <optional>
10#include <string>
11#include <vector>
12
13namespace core::domain {
14class Analysis;
15}
16
18
20public:
24 virtual ~IAnalysisRepository() = default;
25
30 virtual void addAnalysis(const std::shared_ptr<core::domain::Analysis>& analysis) = 0;
31
36 virtual std::vector<std::shared_ptr<core::domain::Analysis>> getAnalyses() const = 0;
37
43 virtual std::optional<std::shared_ptr<core::domain::Analysis>> getAnalysisById(const std::string& id) const = 0;
44
49 virtual void removeAnalysis(const std::string& id) = 0;
50
55 virtual void updateAnalysis(const std::shared_ptr<core::domain::Analysis>& analysis) = 0;
56
61 virtual void upsertAnalysis(const std::shared_ptr<core::domain::Analysis>& analysis) = 0;
62
66 virtual void clearAnalyses() = 0;
67};
68
69} // namespace core::ports::repositories
virtual void addAnalysis(const std::shared_ptr< core::domain::Analysis > &analysis)=0
Add a new analysis.
virtual void updateAnalysis(const std::shared_ptr< core::domain::Analysis > &analysis)=0
Update an existing analysis.
virtual ~IAnalysisRepository()=default
Destroy the analysis repository interface.
virtual std::vector< std::shared_ptr< core::domain::Analysis > > getAnalyses() const =0
Retrieve all analyses.
virtual void removeAnalysis(const std::string &id)=0
Remove an analysis by identifier.
virtual void clearAnalyses()=0
Remove all analyses.
virtual std::optional< std::shared_ptr< core::domain::Analysis > > getAnalysisById(const std::string &id) const =0
Retrieve an analysis by identifier.
virtual void upsertAnalysis(const std::shared_ptr< core::domain::Analysis > &analysis)=0
Insert or update an analysis.