FOSSredder 0.5.0
Loading...
Searching...
No Matches
core::application::analysis::AnalysisService Class Reference

Coordinates analysis lookup, execution, and transaction preview filtering. More...

#include <AnalysisService.h>

Inheritance diagram for core::application::analysis::AnalysisService:
Collaboration diagram for core::application::analysis::AnalysisService:

Public Member Functions

 AnalysisService ()=default
 AnalysisService (std::shared_ptr< core::ports::analysis_rendering::IAnalysisRenderer > imageRenderer)
 ~AnalysisService ()=default
 AnalysisService (const AnalysisService &)=delete
AnalysisService & operator= (const AnalysisService &)=delete
 AnalysisService (AnalysisService &&) noexcept=default
AnalysisService & operator= (AnalysisService &&) noexcept=default
core::ports::analysis::AnalysisResult runAnalysis (const core::domain::catalog::WorkspaceCatalog &state, const core::ports::analysis::AnalysisRequest &request) const
 Runs one analysis request against the supplied workspace state.
core::ports::analysis::AnalysisResult runAnalysis (const core::ports::workspace::WorkspaceSnapshot &workspace, const core::ports::analysis::AnalysisRequest &request) const override
 Runs one analysis request against a workspace port snapshot.
core::ports::analysis::AnalysisResult runAnalysisById (const core::domain::catalog::WorkspaceCatalog &state, const std::string &analysisId, const std::string &filterSpec={}) const
 Resolves an analysis by identifier and executes it.
core::ports::analysis::AnalysisResult computeAnalysis (const core::domain::Analysis &analysis, const core::domain::catalog::WorkspaceCatalog &state, const std::string &filterSpec={}) const
 Computes a concrete analysis definition against the supplied workspace state.
std::vector< std::shared_ptr< core::domain::Transaction > > filterTransactions (const core::domain::catalog::WorkspaceCatalog &state, const std::string &filterSpec={}) const
 Returns the transactions matched by one analysis filter specification.
core::ports::analysis::AnalysisPreviewResult previewTransactions (const core::ports::workspace::WorkspaceSnapshot &workspace, const core::ports::analysis::AnalysisFilterSelection &filter) const override
 Returns port-native transaction preview rows for one filter specification.
core::ports::analysis::AnalysisFilterSelection filterSelectionFromFields (const std::string &dateField, const std::string &dateMode, const std::string &year, const std::string &dateFrom, const std::string &dateTo, const std::vector< std::string > &propertyIds, const std::vector< std::string > &contractTypes, const std::string &allocatableMode) const override
 Builds a normalized filter selection from raw field values.
core::ports::analysis::AnalysisFilterSelection parseFilterSpec (const std::string &filterSpec) const override
 Parses a serialized filter spec through the analysis use case.
std::string buildFilterSpec (const core::ports::analysis::AnalysisFilterSelection &selection) const override
 Serializes a filter selection through the analysis use case.
std::string buildAnalysisConfigJson (const core::ports::analysis::AnalysisConfigInput &input) const override
 Builds serialized analysis configuration from typed input.
core::ports::analysis::AnalysisAdjustmentAmounts buildAnalysisAdjustments (const std::vector< core::ports::analysis::AnalysisAdjustmentTransactionInput > &transactions, const std::vector< std::string > &selectedTransactionIds, double taxPercent) const override
std::optional< double > parseAnalysisPercentText (const std::string &text) const override
 Parses user-entered analysis percentage text.
void applyAnalysisPreviewOverrides (core::ports::workspace::WorkspaceSnapshot &workspace, const std::string &analysisId, bool includeCalculationAdjustments, const core::ports::analysis::AnalysisAdjustmentAmounts &adjustments) const override
 Applies preview-only analysis fields to a workspace snapshot.
core::ports::analysis::AnalysisTableState projectTableState (const core::ports::analysis::AnalysisResult &result, const core::ports::analysis::AnalysisAdjustmentAmounts &adjustments, bool includeCalculationAdjustments, const std::string &unassignedLabel) const override
 Projects analysis result table state for UI consumption.
std::vector< std::string > contractTypes (const core::ports::workspace::WorkspaceSnapshot &workspace) const override
 Returns available contract types for analysis filters.
Public Member Functions inherited from core::ports::analysis::IAnalysisRunner
virtual ~IAnalysisRunner ()=default
 Destroys the analysis runner port.
virtual AnalysisAdjustmentAmounts buildAnalysisAdjustments (const std::vector< AnalysisAdjustmentTransactionInput > &transactions, const std::vector< std::string > &selectedTransactionIds, double taxPercent) const =0
 Builds adjustment amounts for selected transactions.

Detailed Description

Coordinates analysis lookup, execution, and transaction preview filtering.

Definition at line 30 of file AnalysisService.h.

Constructor & Destructor Documentation

◆ AnalysisService() [1/4]

core::application::analysis::AnalysisService::AnalysisService ( )
default
Here is the caller graph for this function:

◆ AnalysisService() [2/4]

core::application::analysis::AnalysisService::AnalysisService ( std::shared_ptr< core::ports::analysis_rendering::IAnalysisRenderer > imageRenderer)
explicit

Definition at line 352 of file AnalysisService.cpp.

◆ ~AnalysisService()

core::application::analysis::AnalysisService::~AnalysisService ( )
default

◆ AnalysisService() [3/4]

core::application::analysis::AnalysisService::AnalysisService ( const AnalysisService & )
delete
Here is the call graph for this function:

◆ AnalysisService() [4/4]

core::application::analysis::AnalysisService::AnalysisService ( AnalysisService && )
defaultnoexcept
Here is the call graph for this function:

Member Function Documentation

◆ applyAnalysisPreviewOverrides()

void core::application::analysis::AnalysisService::applyAnalysisPreviewOverrides ( core::ports::workspace::WorkspaceSnapshot & workspace,
const std::string & analysisId,
bool includeCalculationAdjustments,
const core::ports::analysis::AnalysisAdjustmentAmounts & adjustments ) const
overridevirtual

Applies preview-only analysis fields to a workspace snapshot.

Parameters
workspaceWorkspace snapshot to mutate for preview.
analysisIdTarget analysis id.
includeCalculationAdjustmentsWhether adjustments are included.
adjustmentsAdjustment amount pairs keyed by transaction id.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 623 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ buildAnalysisAdjustments()

core::ports::analysis::AnalysisAdjustmentAmounts core::application::analysis::AnalysisService::buildAnalysisAdjustments ( const std::vector< core::ports::analysis::AnalysisAdjustmentTransactionInput > & transactions,
const std::vector< std::string > & selectedTransactionIds,
double taxPercent ) const
override

Definition at line 602 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ buildAnalysisConfigJson()

std::string core::application::analysis::AnalysisService::buildAnalysisConfigJson ( const core::ports::analysis::AnalysisConfigInput & input) const
overridevirtual

Builds serialized analysis configuration from typed input.

Parameters
inputAnalysis config input.
Returns
Serialized analysis configuration.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 596 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ buildFilterSpec()

std::string core::application::analysis::AnalysisService::buildFilterSpec ( const core::ports::analysis::AnalysisFilterSelection & selection) const
overridevirtual

Serializes a filter selection through the analysis use case.

Parameters
selectionFilter selection.
Returns
Serialized filter specification.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 591 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ computeAnalysis()

core::ports::analysis::AnalysisResult core::application::analysis::AnalysisService::computeAnalysis ( const core::domain::Analysis & analysis,
const core::domain::catalog::WorkspaceCatalog & state,
const std::string & filterSpec = {} ) const

Computes a concrete analysis definition against the supplied workspace state.

Parameters
analysisAnalysis definition to execute.
stateCurrent workspace catalog snapshot.
filterSpecOptional filter override applied during execution.
Returns
Fully materialized analysis result.

Definition at line 394 of file AnalysisService.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ contractTypes()

std::vector< std::string > core::application::analysis::AnalysisService::contractTypes ( const core::ports::workspace::WorkspaceSnapshot & workspace) const
overridevirtual

Returns available contract types for analysis filters.

Parameters
workspaceWorkspace snapshot used as source.
Returns
Contract type values.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 709 of file AnalysisService.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ filterSelectionFromFields()

core::ports::analysis::AnalysisFilterSelection core::application::analysis::AnalysisService::filterSelectionFromFields ( const std::string & dateField,
const std::string & dateMode,
const std::string & year,
const std::string & dateFrom,
const std::string & dateTo,
const std::vector< std::string > & propertyIds,
const std::vector< std::string > & contractTypes,
const std::string & allocatableMode ) const
overridevirtual

Builds a normalized filter selection from raw field values.

Parameters
dateFieldDate field key.
dateModeDate mode key.
yearYear text.
dateFromStart date text.
dateToEnd date text.
propertyIdsSelected property ids.
contractTypesSelected contract types.
allocatableModeAllocatable mode key.
Returns
Normalized filter selection.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 575 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ filterTransactions()

std::vector< std::shared_ptr< core::domain::Transaction > > core::application::analysis::AnalysisService::filterTransactions ( const core::domain::catalog::WorkspaceCatalog & state,
const std::string & filterSpec = {} ) const

Returns the transactions matched by one analysis filter specification.

Parameters
stateCurrent workspace catalog snapshot.
filterSpecRaw analysis filter specification.
Returns
Transactions that satisfy the parsed filter.

Definition at line 456 of file AnalysisService.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [1/2]

AnalysisService & core::application::analysis::AnalysisService::operator= ( AnalysisService && )
defaultnoexcept
Here is the call graph for this function:

◆ operator=() [2/2]

AnalysisService & core::application::analysis::AnalysisService::operator= ( const AnalysisService & )
delete
Here is the call graph for this function:

◆ parseAnalysisPercentText()

std::optional< double > core::application::analysis::AnalysisService::parseAnalysisPercentText ( const std::string & text) const
overridevirtual

Parses user-entered analysis percentage text.

Parameters
textPercent text, optionally with percent sign or comma decimal.
Returns
Parsed percent value when valid.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 619 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ parseFilterSpec()

core::ports::analysis::AnalysisFilterSelection core::application::analysis::AnalysisService::parseFilterSpec ( const std::string & filterSpec) const
overridevirtual

Parses a serialized filter spec through the analysis use case.

Parameters
filterSpecSerialized filter specification.
Returns
Parsed filter selection.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 587 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ previewTransactions()

core::ports::analysis::AnalysisPreviewResult core::application::analysis::AnalysisService::previewTransactions ( const core::ports::workspace::WorkspaceSnapshot & workspace,
const core::ports::analysis::AnalysisFilterSelection & filter ) const
overridevirtual

Returns port-native transaction preview rows for one filter specification.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 464 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ projectTableState()

core::ports::analysis::AnalysisTableState core::application::analysis::AnalysisService::projectTableState ( const core::ports::analysis::AnalysisResult & result,
const core::ports::analysis::AnalysisAdjustmentAmounts & adjustments,
bool includeCalculationAdjustments,
const std::string & unassignedLabel ) const
overridevirtual

Projects analysis result table state for UI consumption.

Parameters
resultAnalysis result.
adjustmentsAdjustment amount pairs keyed by transaction id.
includeCalculationAdjustmentsWhether adjustments are included.
unassignedLabelLabel used for unassigned contract type.
Returns
Projected table state.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 631 of file AnalysisService.cpp.

◆ runAnalysis() [1/2]

core::ports::analysis::AnalysisResult core::application::analysis::AnalysisService::runAnalysis ( const core::domain::catalog::WorkspaceCatalog & state,
const core::ports::analysis::AnalysisRequest & request ) const

Runs one analysis request against the supplied workspace state.

Parameters
stateCurrent workspace catalog snapshot.
requestAnalysis request containing identifier and optional filter override.
Returns
Materialized analysis result, or an unfound result when the identifier is missing.

Definition at line 358 of file AnalysisService.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ runAnalysis() [2/2]

core::ports::analysis::AnalysisResult core::application::analysis::AnalysisService::runAnalysis ( const core::ports::workspace::WorkspaceSnapshot & workspace,
const core::ports::analysis::AnalysisRequest & request ) const
overridevirtual

Runs one analysis request against a workspace port snapshot.

Implements core::ports::analysis::IAnalysisRunner.

Definition at line 368 of file AnalysisService.cpp.

Here is the call graph for this function:

◆ runAnalysisById()

core::ports::analysis::AnalysisResult core::application::analysis::AnalysisService::runAnalysisById ( const core::domain::catalog::WorkspaceCatalog & state,
const std::string & analysisId,
const std::string & filterSpec = {} ) const

Resolves an analysis by identifier and executes it.

Parameters
stateCurrent workspace catalog snapshot.
analysisIdIdentifier of the stored analysis definition.
filterSpecOptional filter override applied instead of the stored filter.
Returns
Materialized analysis result, or an unfound result when the identifier is missing.

Definition at line 375 of file AnalysisService.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: