| 2169 |
ghuddy |
1 |
using System;
|
|
|
2 |
|
|
|
3 |
namespace EA_ReqPro
|
|
|
4 |
{
|
|
|
5 |
/// <summary>
|
|
|
6 |
/// Summary description for EA_Connectors.
|
|
|
7 |
/// </summary>
|
|
|
8 |
public class EA_Connectors
|
|
|
9 |
{
|
|
|
10 |
public EA_Connectors()
|
|
|
11 |
{
|
|
|
12 |
}
|
|
|
13 |
|
|
|
14 |
/// <summary>
|
|
|
15 |
/// Adds a connection between one EA element and another
|
|
|
16 |
/// </summary>
|
|
|
17 |
/// <param name="repository"></param>
|
|
|
18 |
/// <param name="rq_artifact"></param>
|
|
|
19 |
/// <param name="ea_req"></param>
|
|
|
20 |
public static void add(EA.Element src_element, EA.Element dest_element)
|
|
|
21 |
{
|
|
|
22 |
if (false == ea_element_traces_to_or_from(src_element, dest_element))
|
|
|
23 |
{
|
|
|
24 |
// Add the new connection between the src_element and dest_element
|
|
|
25 |
EA.Connector c = (EA.Connector)src_element.Connectors.AddNew("", "Dependency");
|
|
|
26 |
c.SupplierID = dest_element.ElementID;
|
|
|
27 |
c.Direction = "Source -> Destination";
|
|
|
28 |
c.Update();
|
|
|
29 |
src_element.Connectors.Refresh();
|
|
|
30 |
}
|
|
|
31 |
}
|
|
|
32 |
|
|
|
33 |
|
|
|
34 |
private static bool ea_element_traces_to_or_from(EA.Element src_element, EA.Element dest_element)
|
|
|
35 |
{
|
|
|
36 |
foreach(EA.Connector ea_c in src_element.Connectors)
|
|
|
37 |
{
|
|
|
38 |
int destId = -1;
|
|
|
39 |
|
|
|
40 |
// we dont care about direction of relationship, so test for both
|
|
|
41 |
if (ea_c.ClientID == src_element.ElementID)
|
|
|
42 |
destId = ea_c.SupplierID;
|
|
|
43 |
else if (ea_c.SupplierID == src_element.ElementID)
|
|
|
44 |
destId = ea_c.ClientID;
|
|
|
45 |
|
|
|
46 |
// and make sure we filter out self-referential connectors
|
|
|
47 |
if (destId != src_element.ElementID)
|
|
|
48 |
{
|
|
|
49 |
if (destId == dest_element.ElementID)
|
|
|
50 |
return true;
|
|
|
51 |
}
|
|
|
52 |
}
|
|
|
53 |
|
|
|
54 |
return false;
|
|
|
55 |
}
|
|
|
56 |
|
|
|
57 |
|
|
|
58 |
}
|
|
|
59 |
}
|