aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Workflow/Value_RTTI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/Model/Workflow/Value_RTTI.cpp')
-rw-r--r--core/src/Model/Workflow/Value_RTTI.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/core/src/Model/Workflow/Value_RTTI.cpp b/core/src/Model/Workflow/Value_RTTI.cpp
new file mode 100644
index 0000000..f2c8f92
--- /dev/null
+++ b/core/src/Model/Workflow/Value_RTTI.cpp
@@ -0,0 +1,22 @@
+#include "Value.hpp"
+
+#include "Model/Workflow/Values/BasicValues.hpp"
+#include "Utils/Macros.hpp"
+
+const char* BaseValue::FormatKind(Kind kind) {
+ switch (kind) {
+ case KD_Numeric: return "Numeric";
+ case KD_Text: return "Text";
+ case KD_DateTime: return "Date/time";
+ case InvalidKind: UNREACHABLE;
+ }
+}
+
+std::unique_ptr<BaseValue> BaseValue::CreateByKind(BaseValue::Kind kind) {
+ switch (kind) {
+ case KD_Numeric: return std::make_unique<NumericValue>();
+ case KD_Text: return std::make_unique<TextValue>();
+ case KD_DateTime: return std::make_unique<DateTimeValue>();
+ case InvalidKind: return nullptr;
+ }
+}