Ejemplo n.º 1
0
        void dfs_DiscoverVertex(object sender, VertexEventArgs e)
        {
            TypeVertex v = (TypeVertex)e.Vertex;

            Trace.WriteLine("S: " + v.Name);
            Trace.Indent();
            PendingEdges.Push(new List <TypeVertex>());


            if (!destcg.ContainsVertex(v))
            {
                CondensedVertex nv;

                TypeReference tref = v.TypeRef;

                string trefNamespace = v.Namespace;

                if (!NamespaceVertexMap.ContainsKey(trefNamespace))
                {
                    nv = (CondensedVertex)destcg.AddVertex();
                    nv.NameSpaces[trefNamespace]      = 0;
                    NamespaceVertexMap[trefNamespace] = new List <CondensedVertex>();
                    NamespaceVertexMap[trefNamespace].Add(nv);
                }
                else
                {
                    nv = NamespaceVertexMap[trefNamespace][0];
                }

                nv.NameSpaces[trefNamespace]++;
                nv.ContainedTypes.Add(tref);
                VertexReassignmentMap[v] = nv;
                return;
            }
        }