BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Holds collection of SessionItem objects related to the same tag. More...
Public Types | |
using | const_iterator = container_t::const_iterator |
using | container_t = std::vector< SessionItem * > |
Public Member Functions | |
SessionItemContainer (const SessionItemContainer &)=delete | |
SessionItemContainer (TagInfo tag_info) | |
~SessionItemContainer () | |
const_iterator | begin () const |
bool | canInsertItem (const SessionItem *item, int index) const |
Returns true if given item can be inserted under given index. More... | |
bool | canTakeItem (int index) const |
Returns true if item can be taken. More... | |
bool | empty () const |
const_iterator | end () const |
int | indexOfItem (const SessionItem *item) const |
Returns index of item in vector of items. More... | |
bool | insertItem (SessionItem *item, int index) |
Inserts item in a vector of children at given index, returns true in the case of success. More... | |
SessionItem * | itemAt (int index) const |
Returns item at given index. Returns nullptr if index is invalid. More... | |
int | itemCount () const |
Returns number of items in given tag. More... | |
std::vector< SessionItem * > | items () const |
Returns vector of items in this container. More... | |
std::string | name () const |
Returns the name of SessionItemTag. More... | |
SessionItemContainer & | operator= (const SessionItemContainer &)=delete |
TagInfo | tagInfo () const |
SessionItem * | takeItem (int index) |
Removes item at given index and returns it to the user. More... | |
Private Member Functions | |
bool | is_valid_item (const SessionItem *item) const |
Returns true if item's modelType is intended for this tag. More... | |
bool | maximum_reached () const |
Returns true if no more items are allowed. More... | |
bool | minimum_reached () const |
Returns true if less items than now is not allowed. More... | |
Private Attributes | |
container_t | m_items |
TagInfo | m_tag_info |
Holds collection of SessionItem objects related to the same tag.
Definition at line 28 of file sessionitemcontainer.h.
using ModelView::SessionItemContainer::const_iterator = container_t::const_iterator |
Definition at line 31 of file sessionitemcontainer.h.
using ModelView::SessionItemContainer::container_t = std::vector<SessionItem*> |
Definition at line 30 of file sessionitemcontainer.h.
SessionItemContainer::SessionItemContainer | ( | ModelView::TagInfo | tag_info | ) |
Definition at line 21 of file sessionitemcontainer.cpp.
|
delete |
SessionItemContainer::~SessionItemContainer | ( | ) |
SessionItemContainer::const_iterator SessionItemContainer::begin | ( | ) | const |
Definition at line 126 of file sessionitemcontainer.cpp.
References m_items.
bool SessionItemContainer::canInsertItem | ( | const SessionItem * | item, |
int | index | ||
) | const |
Returns true if given item can be inserted under given index.
Definition at line 92 of file sessionitemcontainer.cpp.
References is_valid_item(), itemCount(), and maximum_reached().
Referenced by insertItem(), and TEST_F().
bool SessionItemContainer::canTakeItem | ( | int | index | ) | const |
Returns true if item can be taken.
Definition at line 85 of file sessionitemcontainer.cpp.
References itemAt(), and minimum_reached().
Referenced by ModelView::SessionItemTags::canTakeItem(), and TEST_F().
bool SessionItemContainer::empty | ( | ) | const |
Definition at line 32 of file sessionitemcontainer.cpp.
References m_items.
Referenced by ModelView::SessionItemTags::container(), ModelView::JsonItemContainerConverter::from_json(), ModelView::JsonItemContainerConverter::JsonItemContainerConverterImpl::populate_container(), and TEST_F().
SessionItemContainer::const_iterator SessionItemContainer::end | ( | ) | const |
Definition at line 131 of file sessionitemcontainer.cpp.
References m_items.
int SessionItemContainer::indexOfItem | ( | const SessionItem * | item | ) | const |
Returns index of item in vector of items.
Returns -1 if item doesn't belong to us.
Definition at line 102 of file sessionitemcontainer.cpp.
References ModelView::Utils::IndexOfItem(), and m_items.
Referenced by TEST_F().
bool SessionItemContainer::insertItem | ( | SessionItem * | item, |
int | index | ||
) |
Inserts item in a vector of children at given index, returns true in the case of success.
item | Item to be inserted, ownership will be taken. |
index | Item insert index in a range [0, itemCount] |
Insert index is an index which item will have after insertion. If item can't be inserted (wrong model type, wrong index or maximum number of items reached), will return false.
Definition at line 60 of file sessionitemcontainer.cpp.
References canInsertItem(), and m_items.
Referenced by ModelView::JsonItemContainerConverter::JsonItemContainerConverterImpl::create_items(), ModelView::SessionItemTags::insertItem(), and TEST_F().
|
private |
Returns true if item's modelType is intended for this tag.
Definition at line 152 of file sessionitemcontainer.cpp.
References ModelView::TagInfo::isValidChild(), m_tag_info, and ModelView::SessionItem::modelType().
Referenced by canInsertItem().
SessionItem * SessionItemContainer::itemAt | ( | int | index | ) | const |
Returns item at given index. Returns nullptr if index is invalid.
Definition at line 109 of file sessionitemcontainer.cpp.
Referenced by canTakeItem(), ModelView::SessionItemTags::getItem(), takeItem(), TEST_F(), and ModelView::JsonItemContainerConverter::JsonItemContainerConverterImpl::update_items().
int SessionItemContainer::itemCount | ( | ) | const |
Returns number of items in given tag.
Definition at line 39 of file sessionitemcontainer.cpp.
References m_items.
Referenced by canInsertItem(), ModelView::JsonItemContainerConverter::JsonItemContainerConverterImpl::create_items(), ModelView::SessionItemTags::itemCount(), maximum_reached(), minimum_reached(), TEST_F(), and ModelView::JsonItemContainerConverter::JsonItemContainerConverterImpl::update_items().
std::vector< SessionItem * > SessionItemContainer::items | ( | ) | const |
Returns vector of items in this container.
Definition at line 46 of file sessionitemcontainer.cpp.
References m_items.
Referenced by ModelView::SessionItemTags::getItems(), and TEST_F().
|
private |
Returns true if no more items are allowed.
Definition at line 138 of file sessionitemcontainer.cpp.
References itemCount(), m_tag_info, and ModelView::TagInfo::max().
Referenced by canInsertItem().
|
private |
Returns true if less items than now is not allowed.
Definition at line 145 of file sessionitemcontainer.cpp.
References itemCount(), m_tag_info, and ModelView::TagInfo::min().
Referenced by canTakeItem(), and takeItem().
std::string SessionItemContainer::name | ( | ) | const |
Returns the name of SessionItemTag.
Definition at line 116 of file sessionitemcontainer.cpp.
References m_tag_info, and ModelView::TagInfo::name().
Referenced by TEST_F().
|
delete |
TagInfo SessionItemContainer::tagInfo | ( | ) | const |
Definition at line 121 of file sessionitemcontainer.cpp.
References m_tag_info.
Referenced by ModelView::JsonItemContainerConverter::from_json(), and ModelView::JsonItemContainerConverter::to_json().
SessionItem * SessionItemContainer::takeItem | ( | int | index | ) |
Removes item at given index and returns it to the user.
Definition at line 71 of file sessionitemcontainer.cpp.
References itemAt(), m_items, and minimum_reached().
Referenced by ModelView::SessionItemTags::takeItem(), and TEST_F().
|
private |
Definition at line 69 of file sessionitemcontainer.h.
Referenced by ~SessionItemContainer(), begin(), empty(), end(), indexOfItem(), insertItem(), itemCount(), items(), and takeItem().
|
private |
Definition at line 68 of file sessionitemcontainer.h.
Referenced by is_valid_item(), maximum_reached(), minimum_reached(), name(), and tagInfo().