removed unused on_attribute overloads

This commit is contained in:
2026-04-03 19:46:53 +02:00
parent f4e984a288
commit 9e4660c4ee
33 changed files with 126 additions and 165 deletions
+15 -54
View File
@@ -1,7 +1,10 @@
#ifndef OOS_ACCESS_HPP
#define OOS_ACCESS_HPP
#include <cstdint>
#include "matador/utils/primary_key_attribute.hpp"
#include "matador/utils/field_attributes.hpp"
#include "matador/utils/foreign_attributes.hpp"
#include <optional>
namespace matador {
@@ -29,108 +32,66 @@ template<class Base, class Derived, class Operator>
void process_base(Operator &op, const Derived &object) {
static_assert(!std::is_same_v<Base, Derived>, "class Base must not be of same type as class Derived");
static_assert(std::is_base_of_v<Base, Derived>, "class Base must be base of class Derived");
process(op, static_cast<const Base&>(object));
op.on_base(static_cast<const Base&>(object));
}
template<class Base, class Derived, class Operator>
void process_base(Operator &op, Derived &object) {
static_assert(!std::is_same_v<Base, Derived>, "class Base must not be of same type as class Derived");
static_assert(std::is_base_of_v<Base, Derived>, "class Base must be base of class Derived");
process(op, static_cast<Base&>(object));
op.on_base(static_cast<Base&>(object));
}
template< class Operator, class Type >
void primary_key(Operator &op, const char *id, Type &value, const utils::primary_key_attribute &attr) {
void primary_key(Operator &op, const char *id, Type &value, const utils::primary_key_attribute &attr = utils::DefaultPkAttributes) {
op.on_primary_key(id, value, attr);
}
template< class Operator, class Type >
void primary_key(Operator &op, const char *id, Type &value) {
op.on_primary_key(id, value);
}
template<class Operator>
void revision(Operator &op, const char *id, uint64_t &value) {
op.on_revision(id, value);
}
template<class Operator, class Type>
void attribute(Operator &op, const char *id, Type &value, const utils::field_attributes &attr) {
void attribute(Operator &op, const char *id, Type &value, const utils::field_attributes &attr = utils::NullAttributes) {
op.on_attribute(id, value, attr);
}
template<class Operator, class Type>
void attribute(Operator &op, const char *id, std::optional<Type> &value, const utils::field_attributes &attr) {
void attribute(Operator &op, const char *id, std::optional<Type> &value, const utils::field_attributes &attr = utils::NullAttributes) {
op.on_attribute(id, value, attr);
}
template<class Operator, class Type>
void attribute(Operator &op, const char *id, Type &value) {
op.on_attribute(id, value);
}
template<class Operator, class Type>
void has_one(Operator &op, const char *id, Type &value, const utils::foreign_attributes &attr) {
void has_one(Operator &op, const char *id, Type &value, const utils::foreign_attributes &attr = utils::CascadeNoneFetchLazy) {
op.on_has_one(id, value, attr);
}
template<class Operator, class Type>
void has_one(Operator &op, const char *id, Type &value) {
op.on_has_one(id, value);
}
template<class Operator, class Type>
void belongs_to(Operator &op, const char *id, Type &value, const utils::foreign_attributes &attr) {
void belongs_to(Operator &op, const char *id, Type &value, const utils::foreign_attributes &attr = utils::CascadeNoneFetchLazy) {
op.on_belongs_to(id, value, attr);
}
template<class Operator, class Type>
void belongs_to(Operator &op, const char *id, Type &value) {
op.on_belongs_to(id, value);
}
template<class Operator, class Type, template<class ...> class ContainerType>
void has_many(Operator &op, const char *id, ContainerType<Type> &c, const char *join_column, const utils::foreign_attributes &attr) {
void has_many(Operator &op, const char *id, ContainerType<Type> &c, const char *join_column, const utils::foreign_attributes &attr = utils::CascadeNoneFetchLazy) {
op.on_has_many(id, c, join_column, attr);
}
template<class Operator, class Type, template<class ...> class ContainerType>
void has_many(Operator &op, const char *id, ContainerType<Type> &c, const char *join_column) {
op.on_has_many(id, c, join_column);
}
template<class Operator, class Type, template<class ...> class ContainerType>
void has_many(Operator &op, const char *id, ContainerType<Type> &c, const utils::foreign_attributes &attr) {
void has_many(Operator &op, const char *id, ContainerType<Type> &c, const utils::foreign_attributes &attr = utils::CascadeNoneFetchLazy) {
op.on_has_many(id, c, attr);
}
template<class Operator, class Type, template<class ...> class ContainerType>
void has_many(Operator &op, const char *id, ContainerType<Type> &c) {
op.on_has_many(id, c);
}
template<class Operator, class ContainerType>
void has_many_to_many(Operator &op, const char *id, ContainerType &c, const char *join_column, const char *inverse_join_column, const utils::foreign_attributes &attr) {
void has_many_to_many(Operator &op, const char *id, ContainerType &c, const char *join_column, const char *inverse_join_column, const utils::foreign_attributes &attr = utils::CascadeNoneFetchLazy) {
op.on_has_many_to_many(id, c, join_column, inverse_join_column, attr);
}
template<class Operator, class ContainerType>
void has_many_to_many(Operator &op, const char *id, ContainerType &c, const char *join_column, const char *inverse_join_column) {
op.on_has_many_to_many(id, c, join_column, inverse_join_column);
}
template<class Operator, class ContainerType>
void has_many_to_many(Operator &op, const char *id, ContainerType &c, const utils::foreign_attributes &attr) {
void has_many_to_many(Operator &op, const char *id, ContainerType &c, const utils::foreign_attributes &attr = utils::CascadeNoneFetchLazy) {
op.on_has_many_to_many(id, c, attr);
}
template<class Operator, class ContainerType>
void has_many_to_many(Operator &op, const char *id, ContainerType &c) {
op.on_has_many_to_many(id, c);
}
}
}
#endif //OOS_ACCESS_HPP
+1 -1
View File
@@ -74,7 +74,7 @@ private:
constraints options_ = constraints::None;
};
const field_attributes null_attributes {};
const field_attributes NullAttributes {};
}
#endif //MATADOR_FIELD_ATTRIBUTES_HPP
@@ -22,7 +22,7 @@ public:
}
template<typename PrimaryKeyType>
void on_primary_key(const char * /*id*/, PrimaryKeyType &pk, const primary_key_attribute & = default_pk_attributes) {
void on_primary_key(const char * /*id*/, PrimaryKeyType &pk, const primary_key_attribute & = DefaultPkAttributes) {
const auto value = pk_.as<PrimaryKeyType>();
if (!value) {
// Todo: throw error
@@ -32,7 +32,7 @@ public:
}
static void on_revision(const char * /*id*/, uint64_t & /*rev*/) {}
template<typename T>
static void on_attribute(const char * /*id*/, T &, const field_attributes & = null_attributes) {}
static void on_attribute(const char * /*id*/, T &, const field_attributes & = NullAttributes) {}
template<class P>
static void on_belongs_to(const char * /*id*/, P &, const foreign_attributes & ) {}
template<class P>
@@ -52,12 +52,12 @@ struct pk_unset_checker {
bool unset{true};
template<class PrimaryKeyType>
void on_primary_key(const char * /*id*/, PrimaryKeyType &pk, const primary_key_attribute & = default_pk_attributes) {
void on_primary_key(const char * /*id*/, PrimaryKeyType &pk, const primary_key_attribute & = DefaultPkAttributes) {
unset = !identifier_type_traits<PrimaryKeyType>::is_valid(pk);
}
static void on_revision(const char * /*id*/, uint64_t & /*rev*/) {}
template<typename T>
static void on_attribute(const char * /*id*/, T &, const field_attributes & = null_attributes) {}
static void on_attribute(const char * /*id*/, T &, const field_attributes & = NullAttributes) {}
template<class P>
static void on_belongs_to(const char * /*id*/, P &, const foreign_attributes & ) {}
template<class P>
@@ -74,12 +74,12 @@ struct primary_key_getter {
std::uint64_t value{0};
template<class PrimaryKeyType>
void on_primary_key(const char * /*id*/, PrimaryKeyType &pk, const primary_key_attribute & = default_pk_attributes) {
void on_primary_key(const char * /*id*/, PrimaryKeyType &pk, const primary_key_attribute & = DefaultPkAttributes) {
pk_ = pk;
}
static void on_revision(const char * /*id*/, uint64_t & /*rev*/) {}
template<typename T>
static void on_attribute(const char * /*id*/, T &, const field_attributes & = null_attributes) {}
static void on_attribute(const char * /*id*/, T &, const field_attributes & = NullAttributes) {}
template<class P>
static void on_belongs_to(const char * /*id*/, P &, const foreign_attributes & ) {}
template<class P>
@@ -47,7 +47,7 @@ private:
generator_type generator_ = generator_type::Manual;
};
const primary_key_attribute default_pk_attributes {};
const primary_key_attribute DefaultPkAttributes {};
}
#endif //PRIMARY_KEY_ATTRIBUTE_HPP