#ifndef DOMAIN_FUNCTION_VALIDATOR_H #define DOMAIN_FUNCTION_VALIDATOR_H #include #include #include "value.h" namespace domain { class FunctionValidator { private: std::string name; std::vector signature; protected: FunctionValidator(std::string name, std::vector signature); public: std::string getName(); std::vector getSignature(); bool validateSignature(std::vector signature); virtual bool validate(std::vector values) = 0; virtual void clear() = 0; }; std::vector getSupportedValidators(); } // namespace domain #endif // DOMAIN_FUNCTION_VALIDATOR_H