Browse Source

Add IValidator interface

This interface can be implemented by validators that return a flag whether an operation is valid or not.
Patrick-Christopher Mattulat 2 years ago
parent
commit
ea5fa5de13

+ 1 - 0
CMakeLists.txt

@@ -147,6 +147,7 @@ set(SOURCE_FILES_CORE
         ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/interface/IReader.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/interface/ISerializable.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/interface/IStorable.cpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/interface/IValidator.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/interface/IWriter.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/Class.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/core/LibraryVersion.cpp

+ 28 - 0
include/ls-std/core/interface/IValidator.hpp

@@ -0,0 +1,28 @@
+/*
+* Author:          Patrick-Christopher Mattulat
+* Company:         Lynar Studios
+* E-Mail:          webmaster@lynarstudios.com
+* Created:         2023-02-08
+* Changed:         2023-02-08
+*
+* */
+
+#ifndef LS_STD_I_VALIDATOR_HPP
+#define LS_STD_I_VALIDATOR_HPP
+
+#include <ls-std/os/dynamic-goal.hpp>
+
+namespace ls::std::core::interface_type
+{
+  class LS_STD_DYNAMIC_GOAL IValidator
+  {
+    public:
+
+      IValidator();
+      virtual ~IValidator();
+
+      virtual bool isValid() = 0;
+  };
+}
+
+#endif

+ 1 - 0
include/ls-std/ls-std-core.hpp

@@ -31,6 +31,7 @@
 #include <ls-std/core/interface/IReader.hpp>
 #include <ls-std/core/interface/ISerializable.hpp>
 #include <ls-std/core/interface/IStorable.hpp>
+#include <ls-std/core/interface/IValidator.hpp>
 #include <ls-std/core/interface/IWriter.hpp>
 
 #include <ls-std/core/type/EventTypes.hpp>

+ 14 - 0
source/ls-std/core/interface/IValidator.cpp

@@ -0,0 +1,14 @@
+/*
+* Author:          Patrick-Christopher Mattulat
+* Company:         Lynar Studios
+* E-Mail:          webmaster@lynarstudios.com
+* Created:         2023-02-08
+* Changed:         2023-02-08
+*
+* */
+
+#include <ls-std/core/interface/IValidator.hpp>
+
+ls::std::core::interface_type::IValidator::IValidator() = default;
+
+ls::std::core::interface_type::IValidator::~IValidator() = default;