lintel 0.2.0
Loading...
Searching...
No Matches
ParameterBuilder.h
Go to the documentation of this file.
1#ifndef LINTEL_PARAMETERBUILDER_H
2#define LINTEL_PARAMETERBUILDER_H
3
4#include <string>
5#include <utility>
6#include <vector>
7
9
10namespace lintel {
11namespace db {
16 {
17 private:
18 std::vector<std::string> m_parameters;
19 std::shared_ptr<DatabaseConnectionEntry> m_connectionEntry;
20
21 public:
26 explicit ParameterBuilder(std::shared_ptr<DatabaseConnectionEntry> connectionEntry)
27 : m_connectionEntry(std::move(connectionEntry))
28 {}
29
36 template<typename T> ParameterBuilder &add(T t)
37 {
38 m_parameters.push_back(db::Serialization<T>::serialize(t, m_connectionEntry));
39 return *this;
40 }
41
43 [[nodiscard]] const std::vector<std::string> &build() const { return m_parameters; }
44
46 void clear() { m_parameters.clear(); }
47 };
48}// namespace db
49
50}// namespace lintel
51#endif// LINTEL_PARAMETERBUILDER_H
Definition ParameterBuilder.h:16
ParameterBuilder & add(T t)
Definition ParameterBuilder.h:36
const std::vector< std::string > & build() const
Definition ParameterBuilder.h:43
ParameterBuilder(std::shared_ptr< DatabaseConnectionEntry > connectionEntry)
Definition ParameterBuilder.h:26
void clear()
Definition ParameterBuilder.h:46
Definition Serialization.h:19
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9