SourceXtractorPlusPlus
0.11
Please provide a description of the project.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SEImplementation
SEImplementation
Grouping
GroupingFactory.h
Go to the documentation of this file.
1
17
/*
18
* GroupingFactory.h
19
*
20
* Created on: Jul 2, 2018
21
* Author: mschefer
22
*/
23
24
#ifndef _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_
25
#define _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_
26
27
#include "
SEFramework/Configuration/Configurable.h
"
28
#include "
SEFramework/Pipeline/SourceGrouping.h
"
29
#include "
SEFramework/Source/SourceGroupFactory.h
"
30
31
#include "
SEImplementation/Grouping/NoGroupingCriteria.h
"
32
#include "
SEImplementation/Grouping/OverlappingBoundariesCriteria.h
"
33
#include "
SEImplementation/Grouping/SplitSourcesCriteria.h
"
34
#include "
SEImplementation/Grouping/MoffatCriteria.h
"
35
36
37
#include "
SEImplementation/Configuration/GroupingConfig.h
"
38
39
namespace
SourceXtractor {
40
41
class
GroupingFactory
:
public
Configurable
{
42
43
public
:
44
45
GroupingFactory
(
std::shared_ptr<SourceGroupFactory>
source_group_factory)
46
:
m_source_group_factory
(source_group_factory) {}
47
48
virtual
~GroupingFactory
() =
default
;
49
50
void
reportConfigDependencies
(
Euclid::Configuration::ConfigManager
& manager)
const override
{
51
manager.
registerConfiguration
<
GroupingConfig
>();
52
}
53
54
void
configure
(
Euclid::Configuration::ConfigManager
& manager)
override
{
55
auto
grouping_config = manager.
getConfiguration
<
GroupingConfig
>();
56
switch
(grouping_config.getAlgorithmOption()) {
57
case
GroupingConfig::Algorithm::NO_GROUPING
:
58
m_grouping_criteria
= std::make_shared<NoGroupingCriteria>();
59
break
;
60
case
GroupingConfig::Algorithm::OVERLAPPING
:
61
m_grouping_criteria
= std::make_shared<OverlappingBoundariesCriteria>();
62
break
;
63
case
GroupingConfig::Algorithm::SPLIT_SOURCES
:
64
m_grouping_criteria
= std::make_shared<SplitSourcesCriteria>();
65
break
;
66
case
GroupingConfig::Algorithm::MOFFAT
:
67
m_grouping_criteria
= std::make_shared<MoffatCriteria>(grouping_config.getMoffatThreshold(), grouping_config.getMoffatMaxDistance());
68
break
;
69
}
70
}
71
72
std::shared_ptr<SourceGrouping>
createGrouping
()
const
{
73
assert(
m_grouping_criteria
!=
nullptr
);
74
assert(
m_source_group_factory
!=
nullptr
);
75
76
return
std::make_shared<SourceGrouping>(
m_grouping_criteria
,
m_source_group_factory
);
77
}
78
79
private
:
80
std::shared_ptr<GroupingCriteria>
m_grouping_criteria
;
81
std::shared_ptr<SourceGroupFactory>
m_source_group_factory
;
82
};
83
84
}
/* namespace SourceXtractor */
85
86
87
88
#endif
/* _SEIMPLEMENTATION_GROUPING_GROUPINGFACTORY_H_ */
SourceXtractor::GroupingFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition:
GroupingFactory.h:54
std::shared_ptr< SourceGroupFactory >
MoffatCriteria.h
SourceXtractor::GroupingFactory::m_grouping_criteria
std::shared_ptr< GroupingCriteria > m_grouping_criteria
Definition:
GroupingFactory.h:80
OverlappingBoundariesCriteria.h
SourceXtractor::GroupingFactory
Definition:
GroupingFactory.h:41
SourceXtractor::Configurable
Interface of objects which can be configured.
Definition:
Configurable.h:37
SourceXtractor::GroupingFactory::createGrouping
std::shared_ptr< SourceGrouping > createGrouping() const
Definition:
GroupingFactory.h:72
Euclid::Configuration::ConfigManager::registerConfiguration
void registerConfiguration()
SourceXtractor::GroupingConfig::Algorithm::SPLIT_SOURCES
GroupingConfig.h
SourceXtractor::GroupingConfig::Algorithm::NO_GROUPING
SourceXtractor::GroupingFactory::GroupingFactory
GroupingFactory(std::shared_ptr< SourceGroupFactory > source_group_factory)
Definition:
GroupingFactory.h:45
Euclid::Configuration::ConfigManager
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
SplitSourcesCriteria.h
SourceGroupFactory.h
SourceXtractor::GroupingConfig::Algorithm::OVERLAPPING
SourceXtractor::GroupingFactory::~GroupingFactory
virtual ~GroupingFactory()=default
SourceXtractor::GroupingConfig
Used to select a Grouping algorithm.
Definition:
GroupingConfig.h:36
SourceXtractor::GroupingFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition:
GroupingFactory.h:50
Configurable.h
NoGroupingCriteria.h
SourceXtractor::GroupingConfig::Algorithm::MOFFAT
SourceGrouping.h
SourceXtractor::GroupingFactory::m_source_group_factory
std::shared_ptr< SourceGroupFactory > m_source_group_factory
Definition:
GroupingFactory.h:81
Generated by
1.8.5