Browse Source

Added a module dependency graph where are dependencies between namespacies.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6031 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Tomáš Linhart 15 years ago
parent
commit
8271aeb3f5
  1. 2
      src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs
  2. 23
      src/AddIns/Analysis/CodeQuality/Src/Module.cs

2
src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs

@ -202,7 +202,7 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -202,7 +202,7 @@ namespace ICSharpCode.CodeQualityAnalysis
(from n in type.Namespace.Module.Namespaces
from t in n.Types
from f in t.Fields
where f.Name == e.Name
where f.Name == e.Name && f.Owner == e.Owner
select f).SingleOrDefault();
if (field != null)

23
src/AddIns/Analysis/CodeQuality/Src/Module.cs

@ -25,7 +25,28 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -25,7 +25,28 @@ namespace ICSharpCode.CodeQualityAnalysis
public BidirectionalGraph<object, IEdge<object>> BuildDependencyGraph()
{
return null;
var g = new BidirectionalGraph<object, IEdge<object>>();
foreach (var ns in Namespaces)
{
g.AddVertex(ns.Name);
}
foreach (var ns in Namespaces)
{
foreach (var type in ns.Types)
{
var types = type.GetUses();
foreach (var dependType in types)
{
if (dependType != type && dependType.Namespace.Module == type.Namespace.Module)
g.AddEdge(new Edge<object>(type.Namespace.Name, dependType.Namespace.Name));
}
}
}
return g;
}
public override string ToString()

Loading…
Cancel
Save