Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
}