12#ifndef HIERARCHYITEM_H
13#define HIERARCHYITEM_H
15#include <IPXACTmodels/Catalog/Catalog.h>
16#include <IPXACTmodels/Component/Component.h>
18#include <IPXACTmodels/BusDefinition/BusDefinition.h>
19#include <IPXACTmodels/AbstractionDefinition/AbstractionDefinition.h>
20#include <IPXACTmodels/kactusExtensions/ApiDefinition.h>
21#include <IPXACTmodels/kactusExtensions/ComDefinition.h>
22#include <IPXACTmodels/Design/Design.h>
24#include <IPXACTmodels/kactusExtensions/KactusAttribute.h>
26#include <KactusAPI/KactusAPIGlobal.h>
29#include <QSharedPointer>
68 KactusAttribute::Implementation implementation = KactusAttribute::KTS_IMPLEMENTATION_COUNT,
69 QString
const& viewName = QString());
196 int getOwners(QList<VLNV>& list,
const VLNV& vlnvToSearch)
const;
297 void getChildren(QList<VLNV>& childList,
const VLNV& owner)
const;
353 bool hasChild(
const VLNV& vlnv);
360 void parseComponent(
const VLNV& vlnv);
362 void parseCatalog(VLNV
const& vlnv);
371 VLNV findDesignReference(QSharedPointer<View> view);
380 void createChildItemForDesign(VLNV
const& designVLNV,
381 QString
const& viewName);
388 void parseBusDefinition(
const VLNV& vlnv);
395 void parseAbsDefinition(
const VLNV& vlnv);
402 void parseComDefinition(
const VLNV& vlnv);
409 void parseApiDefinition(
const VLNV& vlnv);
415 void parseDesign(
const VLNV& vlnv, KactusAttribute::Implementation implementation, QString
const& viewName);
422 QVector<VLNV> getValidComponentsInDesign(QSharedPointer<Design const> design);
431 bool isValidComponentInstanceVLNV(VLNV
const& componentVLNV);
441 QSharedPointer<Component const> component_;
447 QVector<HierarchyItem*> childItems_;
462 QMap<VLNV, int> instanceCount_;
ObjectType
Defines the type of the hierarchy item.
void setDuplicate(bool isDuplicate)
bool parentIsRoot() const
void updateItems(const VLNV &vlnv)
void getChildren(QList< VLNV > &childList, const VLNV &owner) const
int getOwners(QList< VLNV > &list, const VLNV &vlnvToSearch) const
HierarchyItem * child(int index) const
QVector< VLNV > getVLNVs() const
void setValidity(bool valid)
bool hasParent(const VLNV &vlnv)
QVector< HierarchyItem * > findItems(const VLNV &vlnv)
bool contains(const VLNV &vlnv) const
KactusAttribute::Implementation getImplementation() const
void errorMessage(QString const &msg)
Send an error message to be printed to user.
int getNumberOfChildren() const
void createChild(const VLNV &vlnv)
HierarchyItem(LibraryInterface *handler, HierarchyItem *parent, VLNV const &vlnv, KactusAttribute::Implementation implementation=KactusAttribute::KTS_IMPLEMENTATION_COUNT, QString const &viewName=QString())
void getChildItems(QList< VLNV > &itemList) const
int countInstances(const VLNV &componentVLNV)
VLNV const & getVLNV() const
int getIndexOf(HierarchyItem *item)
bool isHierarchical() const
int removeItems(const VLNV &vlnv)
HierarchyItem(LibraryInterface *handler, QObject *parent)
HierarchyItem * parent() const
int instanceCount() const
int referenceCount(const VLNV &vlnv) const
QString getViewName() const
QSharedPointer< Component const > component() const
void noticeMessage(QString const &msg)
Send a notification to be printed to user.
virtual ~HierarchyItem()=default
The destructor.
LibraryInterface defines an interface to operate the IP-XACT-library.