1
////////////////////////////////////////////////////////////////////////////////
3
// This file is part of Toolkit for Conceptual Modeling (TCM).
4
// (c) copyright 1999, Vrije Universiteit Amsterdam and University of Twente.
5
// Author: Frank Dehne (frank@cs.vu.nl).
6
// Author: Henk van de Zandschulp (henkz@cs.utwente.nl).
8
// TCM is free software; you can redistribute it and/or modify
9
// it under the terms of the GNU General Public License as published by
10
// the Free Software Foundation; either version 2 of the License, or
11
// (at your option) any later version.
13
// TCM is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
// GNU General Public License for more details.
18
// You should have received a copy of the GNU General Public License
19
// along with TCM; if not, write to the Free Software
20
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
22
////////////////////////////////////////////////////////////////////////////////
26
CPGraph::CPGraph(): Graph() {
29
nodeTypes[i++] = Code::CPD_COMPONENT_NODE;
30
nodeTypes[i++] = Code::CPD_INTERFACE_NODE;
31
nodeTypes[i++] = Code::DPD_RESOURCE_NODE;
32
nodeTypes[i++] = Code::NOTE;
33
nodeTypes[i++] = Code::COMMENT;
36
edgeTypes[j++] = Code::CPD_DEPENDENCY_EDGE;
37
edgeTypes[j++] = Code::CPD_REALIZATION_EDGE;
38
edgeTypes[j++] = Code::DPD_COMMUNICATION_EDGE;
39
edgeTypes[j++] = Code::COMMENT_LINK;
43
void CPGraph::InitConnections () {
44
int COM = Code::GetIndex(Code::CPD_COMPONENT_NODE, nodeTypes);
45
int INT = Code::GetIndex(Code::CPD_INTERFACE_NODE, nodeTypes);
46
int RES = Code::GetIndex(Code::DPD_RESOURCE_NODE, nodeTypes);
47
int NOT = Code::GetIndex(Code::NOTE, nodeTypes);
49
int DEP = Code::GetIndex(Code::CPD_DEPENDENCY_EDGE, edgeTypes);
50
int REA = Code::GetIndex(Code::CPD_REALIZATION_EDGE, edgeTypes);
51
int MUN = Code::GetIndex(Code::DPD_COMMUNICATION_EDGE, edgeTypes);
52
int CML = Code::GetIndex(Code::COMMENT_LINK, edgeTypes);
54
connections[COM][INT][REA] = True;
55
connections[INT][COM][REA] = True;
57
connections[RES][RES][MUN] = True;
59
connections[COM][COM][DEP] = True;
60
connections[RES][RES][DEP] = True;
61
connections[INT][INT][DEP] = True;
62
connections[RES][COM][DEP] = True;
63
connections[COM][RES][DEP] = True;
64
connections[RES][INT][DEP] = True;
65
connections[COM][INT][DEP] = True;
66
connections[INT][RES][DEP] = True;
67
connections[INT][COM][DEP] = True;
69
connections[COM][NOT][CML] = True;
70
connections[NOT][COM][CML] = True;
71
connections[RES][NOT][CML] = True;
72
connections[NOT][RES][CML] = True;
73
connections[INT][NOT][CML] = True;
74
connections[NOT][INT][CML] = True;