Chrysalis - Pattern
Loading...
Searching...
No Matches
BaseNamedElement.h
Go to the documentation of this file.
1#ifndef CHRYSALIS_BASENAMEDINPUT_H
2#define CHRYSALIS_BASENAMEDINPUT_H
3
4#include "serialization.h"
5
6#include <string>
7#include <boost/optional/optional.hpp>
8
9namespace Chrysalis {
11 protected:
12 SERIALIZE(name_, alias_)
14 explicit BaseNamedElement(const std::string& name);
15 public:
16 [[nodiscard]] bool hasAlias() const;
17
18 [[nodiscard]] const std::string& getName() const;
19 [[nodiscard]] const std::string& getAlias() const;
20
21 void setName(const std::string& name);
22 void setAlias(const std::string& alias);
23 private:
24 std::string name_;
25 boost::optional<std::string> alias_;
26 };
27}
28
29#endif //CHRYSALIS_BASENAMEDINPUT_H
const std::string & getAlias() const
Definition BaseNamedElement.cpp:15
void setAlias(const std::string &alias)
Definition BaseNamedElement.cpp:23
const std::string & getName() const
Definition BaseNamedElement.cpp:11
bool hasAlias() const
Definition BaseNamedElement.cpp:7
void setName(const std::string &name)
Definition BaseNamedElement.cpp:19
Definition Argument.h:9
#define PROVIDE_DEFAULT_SERIALIZATION_ACCESS(Class)
Definition serialization.h:45
#define SERIALIZE(...)
Definition serialization.h:62