##// END OF EJS Templates
Wait for the end of an acquisition to validate an operation (3)...
Wait for the end of an acquisition to validate an operation (3) If an operation is to validate, waits the end of the acquisition

File last commit:

r1040:d45cab418d5a
r1215:7541b71e5b78
Show More
DataSourceItemBuilder.cpp
73 lines | 1.9 KiB | text/x-c | CppLexer
/ core / tests / DataSource / DataSourceItemBuilder.cpp
#include "DataSourceItemBuilder.h"
DataSourceItemBuilder &DataSourceItemBuilder::root(const QString &name)
{
m_Root = std::make_shared<DataSourceItem>(DataSourceItemType::NODE, name);
m_Items.push(m_Root.get());
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::root(QVariantHash data)
{
m_Root = std::make_shared<DataSourceItem>(DataSourceItemType::NODE, data);
m_Items.push(m_Root.get());
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::node(const QString &name)
{
return append(DataSourceItemType::NODE, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::node(QVariantHash data)
{
return append(DataSourceItemType::NODE, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::product(const QString &name)
{
return append(DataSourceItemType::PRODUCT, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::product(QVariantHash data)
{
return append(DataSourceItemType::PRODUCT, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::component(const QString &name)
{
return append(DataSourceItemType::COMPONENT, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::component(QVariantHash data)
{
return append(DataSourceItemType::COMPONENT, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::end()
{
m_Items.pop();
return *this;
}
std::shared_ptr<DataSourceItem> DataSourceItemBuilder::build()
{
return m_Root;
}
DataSourceItemBuilder &DataSourceItemBuilder::append(DataSourceItemType type, const QString &name)
{
append(type, QVariantHash{{DataSourceItem::NAME_DATA_KEY, name}});
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::append(DataSourceItemType type, QVariantHash data)
{
auto parentItem = m_Items.top();
auto insertIndex = parentItem->childCount();
parentItem->appendChild(std::make_unique<DataSourceItem>(type, std::move(data)));
m_Items.push(parentItem->child(insertIndex));
return *this;
}