18 using System.Collections.Generic;
23 namespace TraceLab.Components.Types.Preprocessors.ExecutionTraces
32 #region Static utilities
43 foreach (
BiGram bigram
in bigrams)
45 if (!pdg._nodes.ContainsKey(bigram.
Caller))
50 if (!pdg._nodes.ContainsKey(bigram.
Callee))
65 pdgCopy._nodes =
new SerializableDictionary<string,PDGNode>();
66 foreach (KeyValuePair<string, PDGNode> kvpNode
in pdg._nodes)
69 foreach (
PDGEdge edge
in kvpNode.Value.OutgoingEdges)
73 pdgCopy.Add(nodeCopy);
80 private SerializableDictionary<string, PDGNode> _nodes;
81 private List<string> _mapping;
82 private SerializableDictionary<string, int> _indexes;
87 public IEnumerable<PDGNode> Nodes
100 _nodes =
new SerializableDictionary<string, PDGNode>();
101 _mapping =
new List<string>();
102 _indexes =
new SerializableDictionary<string, int>();
113 _indexes.Add(pdgNode.
MethodName, _mapping.Count - 1);
124 _nodes.TryGetValue(node, out pdgNode);
135 return _nodes[_mapping[index]];
145 if (!_indexes.ContainsKey(nodeID))
149 return _indexes[nodeID];
158 StringBuilder sb =
new StringBuilder(
"===PDG BEGIN===");
160 foreach (
PDGNode node
in Nodes)
164 sb.AppendLine(
"===PDG END===");
165 return sb.ToString();