-
Notifications
You must be signed in to change notification settings - Fork 307
/
Copy pathComponentSourceCodeHandlerSourceCodeHandlerAdapter.cs
38 lines (32 loc) · 1.34 KB
/
ComponentSourceCodeHandlerSourceCodeHandlerAdapter.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using Rubberduck.VBEditor.ComManagement;
namespace Rubberduck.VBEditor.SourceCodeHandling
{
public class ComponentSourceCodeHandlerSourceCodeHandlerAdapter : ISourceCodeHandler
{
private readonly IComponentSourceCodeHandler _componentSourceCodeHandler;
private readonly IProjectsProvider _projectsProvider;
public ComponentSourceCodeHandlerSourceCodeHandlerAdapter(IComponentSourceCodeHandler componentSourceCodeHandler, IProjectsProvider projectsProvider)
{
_componentSourceCodeHandler = componentSourceCodeHandler;
_projectsProvider = projectsProvider;
}
public string SourceCode(QualifiedModuleName module)
{
var component = _projectsProvider.Component(module);
if (component == null)
{
return string.Empty;
}
return _componentSourceCodeHandler.SourceCode(component);
}
public void SubstituteCode(QualifiedModuleName module, string newCode)
{
var component = _projectsProvider.Component(module);
if (component == null)
{
return;
}
using (_componentSourceCodeHandler.SubstituteCode(component, newCode)){} //We do nothing; we just need to guarantee that the returned SCW gets disposed.
}
}
}