You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.9 KiB
98 lines
2.9 KiB
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* copyright (C) 2002-2007 *
|
|
* Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
|
|
***************************************************************************/
|
|
|
|
#include "idchangelog.h"
|
|
|
|
#include <kdebug.h>
|
|
|
|
IDChangeLog::IDChangeLog() {}
|
|
|
|
IDChangeLog::IDChangeLog(const IDChangeLog& Other) {
|
|
m_LogArray = Other.m_LogArray;
|
|
}
|
|
|
|
IDChangeLog::~IDChangeLog() {}
|
|
|
|
IDChangeLog& IDChangeLog::operator=(const IDChangeLog& Other) {
|
|
m_LogArray = Other.m_LogArray;
|
|
|
|
return *this;
|
|
}
|
|
|
|
bool IDChangeLog::operator==(const IDChangeLog& /*Other*/) {
|
|
/*It needs to be Implemented*/
|
|
return false;
|
|
}
|
|
|
|
Uml::IDType IDChangeLog::findNewID(Uml::IDType OldID) {
|
|
uint count = m_LogArray.size();
|
|
for(uint i = 0; i < count; i++) {
|
|
if((m_LogArray.point(i)).y() == OldID) {
|
|
return (m_LogArray.point(i)).x();
|
|
}
|
|
}
|
|
|
|
return Uml::id_None;
|
|
}
|
|
|
|
IDChangeLog& IDChangeLog::operator+=(const IDChangeLog& Other) {
|
|
//m_LogArray.putpoints(m_LogArray.size(), Other.m_LogArray.size(), Other)
|
|
uint count = Other.m_LogArray.size();
|
|
for(uint i = 0; i < count; i++) {
|
|
addIDChange((Other.m_LogArray.point(i)).y(), (Other.m_LogArray.point(i)).x());
|
|
}
|
|
|
|
return *this;
|
|
}
|
|
|
|
void IDChangeLog::addIDChange(Uml::IDType OldID, Uml::IDType NewID) {
|
|
uint pos;
|
|
if(!findIDChange(OldID, NewID, pos)) {
|
|
pos = m_LogArray.size();
|
|
m_LogArray.resize(pos + 1);
|
|
m_LogArray.setPoint(pos, NewID, OldID);
|
|
} else {
|
|
m_LogArray.setPoint(pos, NewID, OldID);
|
|
}
|
|
}
|
|
|
|
Uml::IDType IDChangeLog::findOldID(Uml::IDType NewID) {
|
|
uint count = m_LogArray.size();
|
|
for(uint i = 0; i < count; i++) {
|
|
if((m_LogArray.point(i)).x() == NewID) {
|
|
return (m_LogArray.point(i)).y();
|
|
}
|
|
}
|
|
|
|
return Uml::id_None;
|
|
}
|
|
|
|
bool IDChangeLog::findIDChange(Uml::IDType OldID, Uml::IDType NewID, uint& pos) {
|
|
uint count = m_LogArray.size();
|
|
for(uint i = 0; i < count; i++) {
|
|
if(((m_LogArray.point(i)).y() == OldID) && ((m_LogArray.point(i)).x() == NewID)) {
|
|
pos = i;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
void IDChangeLog::removeChangeByNewID(Uml::IDType OldID) {
|
|
uint count = m_LogArray.size();
|
|
for(uint i = 0; i < count; i++) {
|
|
if((m_LogArray.point(i)).y() == OldID) {
|
|
m_LogArray.setPoint(i, Uml::id_None, OldID);
|
|
}
|
|
}
|
|
}
|