-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIdColumnSpecification.h
More file actions
49 lines (39 loc) · 869 Bytes
/
Copy pathIdColumnSpecification.h
File metadata and controls
49 lines (39 loc) · 869 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once
#include <memory>
#include "GenerationStrategy.h"
#include "IColumnMapper.h"
template <typename TEntity>
class IdColumnSpecification
{
public:
IdColumnSpecification() :
_generationStrategy(GenerationStrategy::Assigned)
{
};
~IdColumnSpecification()
{
};
bool IsSpecified() const
{
return (_columnMapper != nullptr);
};
void SetColumnMapper(const std::shared_ptr<IColumnMapper<TEntity>> &columnMapper)
{
_columnMapper = columnMapper;
};
std::shared_ptr<IColumnMapper<TEntity>> GetColumnMapper() const
{
return _columnMapper;
};
void SetGenerationStrategy(GenerationStrategy strategy)
{
_generationStrategy = strategy;
};
GenerationStrategy GetGenerationStrategy() const
{
return _generationStrategy;
};
private:
GenerationStrategy _generationStrategy;
std::shared_ptr<IColumnMapper<TEntity>> _columnMapper;
};