From: <jer...@us...> - 2008-10-03 15:12:58
|
Revision: 164 http://structuremap.svn.sourceforge.net/structuremap/?rev=164&view=rev Author: jeremydmiller Date: 2008-10-03 15:12:28 +0000 (Fri, 03 Oct 2008) Log Message: ----------- Getting ready to eliminate IPluginGraphVisitor and finish out querying the model Modified Paths: -------------- trunk/Source/StructureMap/Diagnostics/TextLine.cs trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs trunk/Source/StructureMap/Graph/PluginFamily.cs trunk/Source/StructureMap/PipelineGraph.cs trunk/Source/StructureMap.Testing/Graph/PluginFamilyTester.cs Modified: trunk/Source/StructureMap/Diagnostics/TextLine.cs =================================================================== --- trunk/Source/StructureMap/Diagnostics/TextLine.cs 2008-10-03 14:47:59 UTC (rev 163) +++ trunk/Source/StructureMap/Diagnostics/TextLine.cs 2008-10-03 15:12:28 UTC (rev 164) @@ -9,6 +9,11 @@ internal TextLine(string[] contents) { _contents = contents; + for (int i = 0; i < contents.Length; i++) + { + if (contents[i] == null) contents[i] = string.Empty; + + } } public void OverwriteCounts(CharacterWidth[] widths) Modified: trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs =================================================================== --- trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs 2008-10-03 14:47:59 UTC (rev 163) +++ trunk/Source/StructureMap/Diagnostics/WhatDoIHaveWriter.cs 2008-10-03 15:12:28 UTC (rev 164) @@ -11,7 +11,7 @@ { private readonly PipelineGraph _graph; private TextReportWriter _writer; - private List<Instance> _instances; + private List<IInstance> _instances; public WhatDoIHaveWriter(PipelineGraph graph) { @@ -33,12 +33,15 @@ private void writeContentsOfPluginTypes(StringWriter stringWriter) { _writer = new TextReportWriter(3); - _instances = new List<Instance>(); + _instances = new List<IInstance>(); _writer.AddDivider('='); _writer.AddText("PluginType", "Name", "Description"); - _graph.Visit(this); + foreach (var pluginType in _graph.PluginTypes) + { + writePluginType(pluginType); + } _writer.AddDivider('='); @@ -61,6 +64,41 @@ writer.WriteLine(); } + private void writePluginType(PluginTypeConfiguration pluginType) + { + _writer.AddDivider('-'); + string[] contents = new string[] { pluginType.PluginType.AssemblyQualifiedName ?? pluginType.PluginType.Name, string.Empty, string.Empty }; + + if (pluginType.Default != null) + { + setContents(contents, pluginType.Default); + + } + + _writer.AddText(contents); + + _writer.AddContent("Built by: " + pluginType.Policy.ToString()); + + foreach (var instance in pluginType.Instances) + { + writeInstance(instance); + } + } + + private void writeInstance(IInstance instance) + { + if (_instances.Contains(instance)) + { + return; + } + + string[] contents = new[] { string.Empty, string.Empty, string.Empty }; + setContents(contents, instance); + + _writer.AddText(contents); + } + + void IPipelineGraphVisitor.PluginType(Type pluginType, Instance defaultInstance, IBuildPolicy policy) { _writer.AddDivider('-'); @@ -77,11 +115,10 @@ _writer.AddContent("Built by: " + policy.ToString()); } - private void setContents(string[] contents, Instance instance) + private void setContents(string[] contents, IInstance instance) { - InstanceToken token = ((IDiagnosticInstance)instance).CreateToken(); - contents[1] = token.Name; - contents[2] = token.Description; + contents[1] = instance.Name; + contents[2] = instance.Description; _instances.Add(instance); } Modified: trunk/Source/StructureMap/Graph/PluginFamily.cs =================================================================== --- trunk/Source/StructureMap/Graph/PluginFamily.cs 2008-10-03 14:47:59 UTC (rev 163) +++ trunk/Source/StructureMap/Graph/PluginFamily.cs 2008-10-03 15:12:28 UTC (rev 164) @@ -366,7 +366,7 @@ { return new PluginTypeConfiguration() { - Instance = GetDefaultInstance(), + Default = GetDefaultInstance(), PluginType = PluginType, Policy = _buildPolicy, Instances = Instances Modified: trunk/Source/StructureMap/PipelineGraph.cs =================================================================== --- trunk/Source/StructureMap/PipelineGraph.cs 2008-10-03 14:47:59 UTC (rev 163) +++ trunk/Source/StructureMap/PipelineGraph.cs 2008-10-03 15:12:28 UTC (rev 164) @@ -19,7 +19,7 @@ public class PluginTypeConfiguration { public Type PluginType { get; set; } - public IInstance Instance { get; set; } + public IInstance Default { get; set; } public IBuildPolicy Policy { get; set; } public IEnumerable<IInstance> Instances { get; set; } @@ -235,7 +235,7 @@ yield return new PluginTypeConfiguration() { - Instance = _profileManager.GetDefault(factory.PluginType), + Default = _profileManager.GetDefault(factory.PluginType), PluginType = factory.PluginType, Policy = factory.Policy, Instances = factory.Instances Modified: trunk/Source/StructureMap.Testing/Graph/PluginFamilyTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/Graph/PluginFamilyTester.cs 2008-10-03 14:47:59 UTC (rev 163) +++ trunk/Source/StructureMap.Testing/Graph/PluginFamilyTester.cs 2008-10-03 15:12:28 UTC (rev 164) @@ -48,7 +48,7 @@ var configuration = family.GetConfiguration(); - configuration.Instance.ShouldBeTheSameAs(instance1); + configuration.Default.ShouldBeTheSameAs(instance1); configuration.PluginType.ShouldEqual(typeof (IWidget)); configuration.Policy.ShouldBeTheSameAs(family.Policy); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |