BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ModelView::JsonItemCopyStrategy Class Reference

Provide SessionItem copying using json based strategy. More...

Inheritance diagram for ModelView::JsonItemCopyStrategy:
[legend]
Collaboration diagram for ModelView::JsonItemCopyStrategy:
[legend]

Classes

struct  JsonItemCopyStrategyImpl
 

Public Member Functions

 JsonItemCopyStrategy (const ItemFactoryInterface *item_factory)
 
 ~JsonItemCopyStrategy ()
 
std::unique_ptr< SessionItemcreateCopy (const SessionItem *item) const
 Creates item copy by deep copying all children. SessionItem identifiers will be regenerated. More...
 

Private Attributes

std::unique_ptr< JsonItemCopyStrategyImplp_impl
 

Detailed Description

Provide SessionItem copying using json based strategy.

Definition at line 28 of file jsonitemcopystrategy.h.

Constructor & Destructor Documentation

◆ JsonItemCopyStrategy()

JsonItemCopyStrategy::JsonItemCopyStrategy ( const ItemFactoryInterface item_factory)

Definition at line 26 of file jsonitemcopystrategy.cpp.

27  : p_impl(std::make_unique<JsonItemCopyStrategyImpl>())
28 {
29  p_impl->m_converter = CreateItemCopyConverter(item_factory);
30 }
std::unique_ptr< JsonItemCopyStrategyImpl > p_impl
std::unique_ptr< JsonItemConverterInterface > CreateItemCopyConverter(const ItemFactoryInterface *item_factory)
Creates JSON item converter intended for item copying.

References ModelView::CreateItemCopyConverter(), and p_impl.

Here is the call graph for this function:

◆ ~JsonItemCopyStrategy()

JsonItemCopyStrategy::~JsonItemCopyStrategy ( )
default

Member Function Documentation

◆ createCopy()

std::unique_ptr< SessionItem > JsonItemCopyStrategy::createCopy ( const SessionItem item) const
virtual

Creates item copy by deep copying all children. SessionItem identifiers will be regenerated.

Implements ModelView::ItemCopyStrategy.

Definition at line 34 of file jsonitemcopystrategy.cpp.

35 {
36  auto json = p_impl->m_converter->to_json(item);
37  return p_impl->m_converter->from_json(json);
38 }

References p_impl.

Member Data Documentation

◆ p_impl

std::unique_ptr<JsonItemCopyStrategyImpl> ModelView::JsonItemCopyStrategy::p_impl
private

Definition at line 37 of file jsonitemcopystrategy.h.

Referenced by JsonItemCopyStrategy(), and createCopy().


The documentation for this class was generated from the following files: