diff options
Diffstat (limited to 'examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm')
10 files changed, 0 insertions, 707 deletions
diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm.json b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm.json deleted file mode 100644 index 1952997f..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Category": "Architecture Recovery", - "Vendor": "Qt Project", - "Version": "1.0", - "DependencyList": [ - "ArchitectureRecoveryCorePlugin" - ] -} diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm.pro b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm.pro deleted file mode 100644 index f1964825..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm.pro +++ /dev/null @@ -1,24 +0,0 @@ -#------------------------------------------------- -# -# Project created by QtCreator 2014-08-13T04:20:30 -# -#------------------------------------------------- - -include(../../duse-mt-plugin.pri) - -QT -= widgets gui - -DEFINES += ACDCARCHITECTURERECOVERYALGORITHM_LIBRARY - -HEADERS += \ - acdcarchitecturerecoveryalgorithm_export.h \ - acdcarchitecturerecoveryalgorithmplugin.h \ - dependencyrelationstreemanager.h \ - subgraphdominatorpattern.h - -SOURCES += \ - acdcarchitecturerecoveryalgorithmplugin.cpp \ - dependencyrelationstreemanager.cpp \ - subgraphdominatorpattern.cpp - -OTHER_FILES += acdcarchitecturerecoveryalgorithm.json diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm_dependencies.pri b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm_dependencies.pri deleted file mode 100644 index d7045bf4..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm_dependencies.pri +++ /dev/null @@ -1,4 +0,0 @@ -DUSEMT_PLUGIN_NAME = AcdcArchitectureRecoveryAlgorithm - -DUSEMT_PLUGIN_DEPENDS += \ - architecturerecoverycore diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm_export.h b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm_export.h deleted file mode 100644 index 87d44411..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithm_export.h +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ACDCARCHITECTURERECOVERYALGORITHM_EXPORT_H -#define ACDCARCHITECTURERECOVERYALGORITHM_EXPORT_H - -#include <qglobal.h> - -#if defined(ACDCARCHITECTURERECOVERYALGORITHM_LIBRARY) -# define ACDCARCHITECTURERECOVERYALGORITHM_EXPORT Q_DECL_EXPORT -#else -# define ACDCARCHITECTURERECOVERYALGORITHM_EXPORT Q_DECL_IMPORT -#endif - -#endif // ACDCARCHITECTURERECOVERYALGORITHM_EXPORT_H diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithmplugin.cpp b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithmplugin.cpp deleted file mode 100644 index 8a370d68..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithmplugin.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "acdcarchitecturerecoveryalgorithmplugin.h" - -#include <QDebug> - -namespace DuSE -{ - -AcdcArchitectureRecoveryAlgorithmPlugin::AcdcArchitectureRecoveryAlgorithmPlugin(QObject *parent) - : IPlugin(parent), _dependencyRelationsTreeManager(new DependencyRelationsTreeManager), - _subgraphDominatorPattern(new SubgraphDominatorPattern) -{ - _name = "ACDC"; -} - -bool AcdcArchitectureRecoveryAlgorithmPlugin::initialize() -{ - return true; -} - -void AcdcArchitectureRecoveryAlgorithmPlugin::run() -{ - _dependencyRelationsTreeManager->fillNodesTable(_nodesTable, _dependencyRelations); - _dependencyRelationsTreeManager->orderNodes(_nodesTable, _orderedNodes); - _subgraphDominatorPattern->executePattern(_orderedNodes, _dependencyRelations); - _subgraphs = _subgraphDominatorPattern->subgraphs(); - _orphanNodes = _subgraphDominatorPattern->orphanNodes(_subgraphs, _dependencyRelations); - _subgraphs.append(_orphanNodes); -} - -void AcdcArchitectureRecoveryAlgorithmPlugin::setDependencyRelations(QMultiMap<QString, QString> m_dependencyRelations) -{ - _dependencyRelations = m_dependencyRelations; -} - -QList<QStringList> AcdcArchitectureRecoveryAlgorithmPlugin::subgraphs() -{ - return _subgraphs; -} - -void AcdcArchitectureRecoveryAlgorithmPlugin::setDevelopmentPlatform(IDevelopmentPlatform *m_developmentPlatform) -{ - _developmentPlatform = m_developmentPlatform; -} - -void AcdcArchitectureRecoveryAlgorithmPlugin::setModelingNotation(IModelingNotation *m_modelingNotation) -{ - _modelingNotation = m_modelingNotation; -} - -IDevelopmentPlatform *AcdcArchitectureRecoveryAlgorithmPlugin::developmentPlatform() -{ - return _developmentPlatform; -} - -IModelingNotation *AcdcArchitectureRecoveryAlgorithmPlugin::modelingNotation() -{ - return _modelingNotation; -} - -} diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithmplugin.h b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithmplugin.h deleted file mode 100644 index 719485e7..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/acdcarchitecturerecoveryalgorithmplugin.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef ACDCARCHITECTURERECOVERYALGORITHMPLUGIN_H -#define ACDCARCHITECTURERECOVERYALGORITHMPLUGIN_H - -#include <QMultiMap> -#include <QHash> - -#include <duseinterfaces/iplugin.h> -#include <architecturerecoverycore/iarchitecturerecoveryalgorithm.h> - -#include "dependencyrelationstreemanager.h" -#include "subgraphdominatorpattern.h" - -#include "acdcarchitecturerecoveryalgorithm_export.h" - -namespace DuSE -{ - -class ACDCARCHITECTURERECOVERYALGORITHM_EXPORT AcdcArchitectureRecoveryAlgorithmPlugin : public IPlugin, public IArchitectureRecoveryAlgorithm -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.liveblue.DuSE.IPlugin" FILE "acdcarchitecturerecoveryalgorithm.json") - -public: - AcdcArchitectureRecoveryAlgorithmPlugin(QObject *parent = 0); - - virtual bool initialize(); - - virtual void run(); - - void setDependencyRelations(QMultiMap<QString, QString> m_dependencyRelations); - QList<QStringList> subgraphs(); - - virtual void setDevelopmentPlatform(IDevelopmentPlatform *m_developmentPlatform); - virtual void setModelingNotation(IModelingNotation *m_modelingNotation); - - virtual IDevelopmentPlatform* developmentPlatform(); - virtual IModelingNotation* modelingNotation(); - -private: - IDevelopmentPlatform *_developmentPlatform; - IModelingNotation *_modelingNotation; - QMultiMap<QString, QString> _dependencyRelations; - DependencyRelationsTreeManager *_dependencyRelationsTreeManager; - QHash<QString, int> _nodesTable; - QStringList _orderedNodes; - SubgraphDominatorPattern *_subgraphDominatorPattern; - QList<QStringList> _subgraphs; - QStringList _orphanNodes; -}; - -} - -#endif // ACDCARCHITECTURERECOVERYALGORITHMPLUGIN_H diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/dependencyrelationstreemanager.cpp b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/dependencyrelationstreemanager.cpp deleted file mode 100644 index 237ed055..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/dependencyrelationstreemanager.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "dependencyrelationstreemanager.h" - -namespace DuSE -{ - -DependencyRelationsTreeManager::DependencyRelationsTreeManager() -{ -} - -void DependencyRelationsTreeManager::fillNodesTable(QHash<QString, int> &nodesTable, const QMultiMap<QString, QString> &dependencies) -{ - foreach (QString key, dependencies.uniqueKeys()) { - nodesTable.insert(key, dependencies.values(key).count()); - } - - foreach (QString value, dependencies.values()) { - if (!nodesTable.keys().contains(value)) { - nodesTable.insert(value, 0); - } - } -} - -void DependencyRelationsTreeManager::orderNodes(const QHash<QString, int> &nodesTable, QStringList &nodeList) -{ - int max = findMax(nodesTable); - - for (int i = 1; i <= max; ++i) { - foreach (QString node, nodesTable.keys()) { - int count = nodesTable.value(node); - - if (i == count) { - nodeList.append(node); - } - } - } -} - -int DependencyRelationsTreeManager::findMax(const QHash<QString, int> &nodesTable) -{ - int max = 0; - foreach (int count, nodesTable.values()) { - if (count > max) { - max = count; - } - } - - return max; -} - -QStringList DependencyRelationsTreeManager::targets(const QStringList &nodesList, const QMultiMap<QString, QString> &dependencies) -{ - QStringList coveredNodes; - foreach (QString itemNode, nodesList) { - foreach (QString coveredNode, dependencies.values(itemNode)) { - if ((coveredNode != itemNode) && !coveredNodes.contains(coveredNode)) { - coveredNodes.append(coveredNode); - } - } - } - - return coveredNodes; -} - -QStringList DependencyRelationsTreeManager::sources(QString node, QMultiMap<QString, QString> dependencies) -{ - QStringList sourceList; - - foreach (QString key, dependencies.keys()) { - if (dependencies.values(key).contains(node)) { - sourceList.append(key); - } - } - - return sourceList; -} - -} diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/dependencyrelationstreemanager.h b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/dependencyrelationstreemanager.h deleted file mode 100644 index c17faee6..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/dependencyrelationstreemanager.h +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef DEPENDENCYRELATIONSTREEMANAGER_H -#define DEPENDENCYRELATIONSTREEMANAGER_H - -#include <QMultiMap> -#include <QHash> -#include <QStringList> - -namespace DuSE -{ - -class DependencyRelationsTreeManager -{ -public: - DependencyRelationsTreeManager(); - - void fillNodesTable(QHash<QString, int> &nodesTable, const QMultiMap<QString, QString> &dependencies); - void orderNodes(const QHash<QString, int> &nodesTable, QStringList &nodeList); - int findMax(const QHash<QString, int> &nodesTable); - QStringList targets(const QStringList &nodesList, const QMultiMap<QString, QString> &dependencies); - QStringList sources(QString node, QMultiMap<QString, QString> dependencies); -}; - -} - -#endif // DEPENDENCYRELATIONSTREEMANAGER_H diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/subgraphdominatorpattern.cpp b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/subgraphdominatorpattern.cpp deleted file mode 100644 index 17ebf6f9..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/subgraphdominatorpattern.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "subgraphdominatorpattern.h" - -namespace DuSE -{ - -SubgraphDominatorPattern::SubgraphDominatorPattern() -{ -} - -void SubgraphDominatorPattern::executePattern(const QStringList &orderedNodes, QMultiMap<QString, QString> dependencies) -{ - // Para cada nó da lista de nós ordenados - foreach (QString node, orderedNodes) { - - // Chamar coveredSet - QStringList coveredNodes = coveredSet(node, dependencies); - - if (coveredNodes.contains(node) && (coveredNodes.count() == 1)) { - } else { - // Um Subgraph Dominator foi descoberto. Ele será adicionado na lista e será removido do Hash de dependências. - _subgraphs.append(coveredNodes); - } - } -} - -QStringList SubgraphDominatorPattern::coveredSet(QString node, QMultiMap<QString, QString> dependencies) -{ - QStringList list; - QStringList covered; - - // Criar uma lista e colocar o nó lá dentro - list.append(node); - int currentListSize = 0; - int originalListSize = 0; - - do { - originalListSize = list.count(); - - // Guardar em covered os nós para os quais todos os nós da lista apontam, - // exceto os próprios nós (ou seja, não considera loops) da lista. - covered = _treeManager.targets(list, dependencies); - - // Cria uma lista falseOnes - QStringList falseOnes; - int currentCoveredSize = 0; - int originalCoveredSize = 0; - do { - originalCoveredSize = covered.count(); - - // Tirar uma cópia de covered e guardar em both - QStringList both = covered; - - // Adicionar a lista em both - foreach (QString itemNode, list) { - if (!both.contains(itemNode)) { - both.append(list); - } - } - - foreach (QString coveredNode, covered) { - bool nodeIsFalseOne = false; - QStringList sourceList = _treeManager.sources(coveredNode, dependencies); - foreach (QString source, sourceList) { - if (!both.contains(source)) { - nodeIsFalseOne = true; - break; - } - } - - if (nodeIsFalseOne == true) { - falseOnes.append(coveredNode); - } - } - - foreach (QString falseOne, falseOnes) { - covered.removeOne(falseOne); - } - currentCoveredSize = covered.count(); - } while (originalCoveredSize != currentCoveredSize); - - foreach (QString coveredNode, covered) { - if (!list.contains(coveredNode)) { - list.append(coveredNode); - } - } - currentListSize = list.count(); - } while (originalListSize != currentListSize); - - return list; -} - -QStringList SubgraphDominatorPattern::orphanNodes(const QList<QStringList> &subgraphs, QMultiMap<QString, QString> dependencies) -{ - QStringList orphanContainer; - QStringList allNodes; - - foreach (QString dependent, dependencies.uniqueKeys()) { - if (!allNodes.contains(dependent)) { - allNodes.append(dependent); - } - foreach (QString dependency, dependencies.values(dependent)) { - if (!allNodes.contains(dependency)) { - allNodes.append(dependency); - } - } - } - - foreach (QString node, allNodes) { - bool nodeIsOrphan = true; - - foreach (QStringList subgraph, subgraphs) { - if (subgraph.contains(node)) { - nodeIsOrphan = false; - break; - } - } - - if (nodeIsOrphan == true) { - if (!orphanContainer.contains(node)) { - orphanContainer.append(node); - } - } - } - - return orphanContainer; -} - -QList<QStringList> SubgraphDominatorPattern::subgraphs() -{ - return _subgraphs; -} - -} diff --git a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/subgraphdominatorpattern.h b/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/subgraphdominatorpattern.h deleted file mode 100644 index 3f4d3ba3..00000000 --- a/examples/uml/duse-mt/src/plugins/acdcarchitecturerecoveryalgorithm/subgraphdominatorpattern.h +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org> -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtUml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef SUBGRAPHDOMINATORPATTERN_H -#define SUBGRAPHDOMINATORPATTERN_H - -#include <QMultiMap> -#include <QStringList> - -#include "dependencyrelationstreemanager.h" - -namespace DuSE -{ - -class SubgraphDominatorPattern -{ -public: - SubgraphDominatorPattern(); - - void executePattern(const QStringList &orderedNodes, QMultiMap<QString, QString> dependencies); - QStringList coveredSet(QString node, QMultiMap<QString, QString> dependencies); - QStringList orphanNodes(const QList<QStringList> &subgraphs, QMultiMap<QString, QString> dependencies); - - QList<QStringList> subgraphs(); - -private: - QList<QStringList> _subgraphs; - DependencyRelationsTreeManager _treeManager; -}; - -} - -#endif // SUBGRAPHDOMINATORPATTERN_H |