本文整理汇总了C++中qrrepo::RepoApi::incomingLinks方法的典型用法代码示例。如果您正苦于以下问题:C++ RepoApi::incomingLinks方法的具体用法?C++ RepoApi::incomingLinks怎么用?C++ RepoApi::incomingLinks使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qrrepo::RepoApi
的用法示例。
在下文中一共展示了RepoApi::incomingLinks方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseLinksOnDiagram
void QrsMetamodelLoader::parseLinksOnDiagram(const qrRepo::RepoApi &repo, Metamodel &metamodel, const Id &diagram)
{
QHash<QPair<ElementType *, ElementType *>, QString> overridingProperties;
QSet<ElementType *> elements;
const QString diagramName = validateName(repo, diagram);
for (const Id &id : repo.children(diagram)) {
const Id elementType = id.type();
if ((elementType == metamodelNodeType || elementType == metamodelEdgeType
|| elementType == metamodelImportType) && repo.isLogicalElement(id))
{
const IdList inLinks = repo.incomingLinks(id);
for (const Id &inLink : inLinks) {
if (!repo.isLogicalElement(inLink)) {
continue;
}
if (inLink.type() == metamodelInheritanceLinkType) {
ElementType *from = nullptr;
ElementType *to = nullptr;
QString overridingProperty;
parseGeneralization(repo, metamodel, inLink, diagramName, from, to, overridingProperty);
overridingProperties[qMakePair(from, to)] = overridingProperty;
elements.insert(from);
elements.insert(to);
} else if (inLink.type() == metamodelContainmentLinkType) {
parseContainer(repo, metamodel, inLink, diagramName);
} else if (inLink.type() == metamodelExplosionLinkType) {
parseExplosion(repo, metamodel, inLink, diagramName);
}
}
}
}
resolveInheritance(elements, overridingProperties);
}