1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#include "UmlCom.h"
#include "UmlBaseUseCaseDiagramDefinition.h"
void UmlBaseUseCaseDiagramDefinition::read_() {
QPtrDict<UmlUseCaseReference> ucrefs;
unsigned n;
unsigned rank;
n = UmlCom::read_unsigned();
_fragments.resize(n);
for (rank = 0; rank != n; rank += 1) {
UmlFragment * f = new UmlFragment();
_fragments.insert(rank, f);
f->read_();
}
_fragments.setAutoDelete(TRUE);
UmlBaseFragment::compute_container_(_fragments);
n = UmlCom::read_unsigned();
_subjects.resize(n);
for (rank = 0; rank != n; rank += 1) {
UmlSubject * sb = new UmlSubject();
_subjects.insert(rank, sb);
sb->read_();
}
_subjects.setAutoDelete(TRUE);
n = UmlCom::read_unsigned();
_use_cases.resize(n);
for (rank = 0; rank != n; rank += 1) {
UmlUseCaseReference * uc = new UmlUseCaseReference();
_use_cases.insert(rank, uc);
ucrefs.insert((void *) UmlCom::read_unsigned(), uc);
uc->read_(_fragments, _subjects);
}
_use_cases.setAutoDelete(TRUE);
n = UmlCom::read_unsigned();
_actors.resize(n);
for (rank = 0; rank != n; rank += 1)
_actors.insert(rank, (UmlClass *) UmlBaseItem::read_());
n = UmlCom::read_unsigned();
_rels.resize(n);
for (rank = 0; rank != n; rank += 1) {
UmlUseCaseAssociation * r = new UmlUseCaseAssociation();
_rels.insert(rank, r);
r->read_(ucrefs);
}
_rels.setAutoDelete(TRUE);
}
UmlBaseUseCaseDiagramDefinition::~UmlBaseUseCaseDiagramDefinition() {
}
|