object generation progress

This commit is contained in:
2025-12-01 22:03:07 +01:00
parent 422df82b7c
commit c156ab5e74
10 changed files with 62 additions and 77 deletions
+6 -20
View File
@@ -8,6 +8,8 @@
#include "matador/utils/identifier.hpp"
#include <list>
namespace matador::object {
class repository;
@@ -16,22 +18,6 @@ class object {
public:
explicit object(std::string name, std::string alias = "");
// template<typename Type>
// static std::unique_ptr<object> generate(const repository& repo, std::string name, std::string alias = "") {
// auto obj = std::make_unique<object>(std::move(name), std::move(alias));
// obj->attributes_ = std::move(attribute_generator::generate<Type>(repo, *obj));
// obj->constraints_ = std::move(constraints_generator::generate<Type>(repo, *obj));
// return obj;
// }
//
// template<typename Type>
// static std::unique_ptr<object> generate(const std::unique_ptr<Type>& ptr, const repository& repo, std::string name, std::string alias = "") {
// auto obj = std::make_unique<object>(std::move(name), std::move(alias));
// obj->attributes_ = std::move(attribute_generator::generate(*ptr, repo, *obj));
// obj->constraints_ = std::move(constraints_generator::generate(*ptr, repo, *obj));
// return obj;
// }
static const attribute& create_attribute(std::string name, object& obj);
void add_attribute(attribute attr);
@@ -48,11 +34,11 @@ public:
[[nodiscard]] bool has_attributes() const;
[[nodiscard]] size_t attribute_count() const;
[[nodiscard]] const std::vector<attribute>& attributes() const;
[[nodiscard]] const std::list<attribute>& attributes() const;
[[nodiscard]] bool has_constraints() const;
[[nodiscard]] size_t constraint_count() const;
[[nodiscard]] const std::vector<class constraint>& constraints() const;
[[nodiscard]] const std::list<class constraint>& constraints() const;
private:
friend class constraints_generator;
@@ -64,8 +50,8 @@ private:
attribute* pk_attribute_{nullptr};
utils::identifier pk_identifier_;
std::vector<attribute> attributes_;
std::vector<class constraint> constraints_;
std::list<attribute> attributes_;
std::list<class constraint> constraints_;
};
}
#endif //MATADOR_OBJECT_HPP