Reduce public surface area of some APIs.

- Change `DefaultRazorEngineBuilder.DesignTime` to be getter only
- Make `DocumentClassifierPassBase.TargetExtensions` private.

#1510
This commit is contained in:
N. Taylor Mullen 2017-07-06 16:27:06 -07:00
parent d891fae4a9
commit 45fad171a6
5 changed files with 12 additions and 15 deletions

View File

@ -8,8 +8,9 @@ namespace Microsoft.AspNetCore.Razor.Language
{
internal class DefaultRazorEngineBuilder : IRazorEngineBuilder
{
public DefaultRazorEngineBuilder()
public DefaultRazorEngineBuilder(bool designTime)
{
DesignTime = designTime;
Features = new List<IRazorEngineFeature>();
Phases = new List<IRazorEnginePhase>();
}
@ -18,7 +19,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public IList<IRazorEnginePhase> Phases { get; }
public bool DesignTime { get; set; }
public bool DesignTime { get; }
public RazorEngine Build()
{

View File

@ -11,15 +11,14 @@ namespace Microsoft.AspNetCore.Razor.Language
public abstract class DocumentClassifierPassBase : IntermediateNodePassBase, IRazorDocumentClassifierPass
{
private static readonly ICodeTargetExtension[] EmptyExtensionArray = new ICodeTargetExtension[0];
private ICodeTargetExtension[] _targetExtensions;
protected abstract string DocumentKind { get; }
protected ICodeTargetExtension[] TargetExtensions { get; private set; }
protected override void OnInitialized()
{
var feature = Engine.Features.OfType<IRazorTargetExtensionFeature>();
TargetExtensions = feature.FirstOrDefault()?.TargetExtensions.ToArray() ?? EmptyExtensionArray;
_targetExtensions = feature.FirstOrDefault()?.TargetExtensions.ToArray() ?? EmptyExtensionArray;
}
protected sealed override void ExecuteCore(RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode)
@ -85,9 +84,9 @@ namespace Microsoft.AspNetCore.Razor.Language
{
return CodeTarget.CreateDefault(codeDocument, options, (builder) =>
{
for (var i = 0; i < TargetExtensions.Length; i++)
for (var i = 0; i < _targetExtensions.Length; i++)
{
builder.TargetExtensions.Add(TargetExtensions[i]);
builder.TargetExtensions.Add(_targetExtensions[i]);
}
ConfigureTarget(builder);

View File

@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Razor.Language
IList<IRazorEnginePhase> Phases { get; }
bool DesignTime { get; set; }
bool DesignTime { get; }
RazorEngine Build();
}

View File

@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public static RazorEngine Create(Action<IRazorEngineBuilder> configure)
{
var builder = new DefaultRazorEngineBuilder();
var builder = new DefaultRazorEngineBuilder(designTime: false);
AddDefaults(builder);
AddRuntimeDefaults(builder);
configure?.Invoke(builder);
@ -32,10 +32,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public static RazorEngine CreateDesignTime(Action<IRazorEngineBuilder> configure)
{
var builder = new DefaultRazorEngineBuilder()
{
DesignTime = true,
};
var builder = new DefaultRazorEngineBuilder(designTime: true);
AddDefaults(builder);
AddDesignTimeDefaults(builder);
configure?.Invoke(builder);
@ -44,7 +41,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public static RazorEngine CreateEmpty(Action<IRazorEngineBuilder> configure)
{
var builder = new DefaultRazorEngineBuilder();
var builder = new DefaultRazorEngineBuilder(designTime: false);
configure?.Invoke(builder);
return builder.Build();
}

View File

@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public void Build_AddsFeaturesAndPhases()
{
// Arrange
var builder = new DefaultRazorEngineBuilder();
var builder = new DefaultRazorEngineBuilder(designTime: false);
builder.Features.Add(Mock.Of<IRazorEngineFeature>());
builder.Features.Add(Mock.Of<IRazorEngineFeature>());