|
|
|
@ -7,8 +7,10 @@
|
|
|
|
#include "Logger.h"
|
|
|
|
#include "Logger.h"
|
|
|
|
|
|
|
|
|
|
|
|
/// \brief Миксин для иерархических связей между элементами.
|
|
|
|
/// \brief Миксин для иерархических связей между элементами.
|
|
|
|
/// Автоматически выбирает тип связи (один-ко-многим или один-к-одному) в зависимости от типа дочернего элемента.
|
|
|
|
|
|
|
|
/// \tparam TElem Тип дочернего элемента.
|
|
|
|
/// \tparam TElem Тип дочернего элемента.
|
|
|
|
|
|
|
|
/// Автоматически выбирает тип связи (один-ко-многим или один-к-одному) в зависимости от типа
|
|
|
|
|
|
|
|
/// дочернего узла. Если тип дочернего узла совпадает с родителем, то используется связь
|
|
|
|
|
|
|
|
/// один-ко-многим. При попытке подключить узел отличного типа выбирается связь один-к-одному.
|
|
|
|
template <class TElem>
|
|
|
|
template <class TElem>
|
|
|
|
class HierarchicalLinkMixin : public LazyLinkMixin<OneToOneLink<TElem>> {
|
|
|
|
class HierarchicalLinkMixin : public LazyLinkMixin<OneToOneLink<TElem>> {
|
|
|
|
using LinkPtr = std::shared_ptr<ILink<TElem>>;
|
|
|
|
using LinkPtr = std::shared_ptr<ILink<TElem>>;
|
|
|
|
|