FOSSredder 0.5.0
Loading...
Searching...
No Matches
TableAnalysis.cpp
Go to the documentation of this file.
1
5
6#include "TableAnalysis.h"
9
11
12core::ports::analysis::AnalysisResult
15 const AnalysisFilter& filter)
16{
17 (void)analysis;
19
20 for (const auto& transaction : collectAnalysisTransactions(state, filter)) {
21 result.table.push_back({transaction->bookingDate(), transaction->name(), std::to_string(transaction->amount())});
22 }
23
24 result.metrics[std::string(core::application::analysis::keys::metricKeys::kRowCount)] = static_cast<double>(result.table.size());
25 return result;
26}
27
28} // namespace core::application::analysis
Declares internal analysis filter predicates and collection helpers.
Defines stable analysis type, configuration, filter, and result keys.
Declares tabular analysis result projection helpers.
Aggregates transaction predicates parsed from one analysis filter specification.
core::ports::analysis::AnalysisResult computeTableAnalysis(const core::domain::Analysis &analysis, const core::domain::catalog::WorkspaceCatalog &state, const AnalysisFilter &filter)
Computes table rows for transactions matched by one analysis.
std::vector< std::shared_ptr< core::domain::Transaction > > collectAnalysisTransactions(const core::domain::catalog::WorkspaceCatalog &state, const AnalysisFilter &filter)
Collects transactions that satisfy the supplied filter.
std::vector< std::vector< std::string > > table
std::map< std::string, double > metrics