From 45fad171a6e006ba7acc425cc6edcd802ad296d8 Mon Sep 17 00:00:00 2001 From: "N. Taylor Mullen" Date: Thu, 6 Jul 2017 16:27:06 -0700 Subject: [PATCH] Reduce public surface area of some APIs. - Change `DefaultRazorEngineBuilder.DesignTime` to be getter only - Make `DocumentClassifierPassBase.TargetExtensions` private. #1510 --- .../DefaultRazorEngineBuilder.cs | 5 +++-- .../DocumentClassifierPassBase.cs | 9 ++++----- .../IRazorEngineBuilder.cs | 2 +- src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs | 9 +++------ .../DefaultRazorEngineBuilderTest.cs | 2 +- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorEngineBuilder.cs b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorEngineBuilder.cs index 05e039fac9..21a04f72bd 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorEngineBuilder.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DefaultRazorEngineBuilder.cs @@ -8,8 +8,9 @@ namespace Microsoft.AspNetCore.Razor.Language { internal class DefaultRazorEngineBuilder : IRazorEngineBuilder { - public DefaultRazorEngineBuilder() + public DefaultRazorEngineBuilder(bool designTime) { + DesignTime = designTime; Features = new List(); Phases = new List(); } @@ -18,7 +19,7 @@ namespace Microsoft.AspNetCore.Razor.Language public IList Phases { get; } - public bool DesignTime { get; set; } + public bool DesignTime { get; } public RazorEngine Build() { diff --git a/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs b/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs index 517f3c959b..0e1f7f01ed 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/DocumentClassifierPassBase.cs @@ -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(); - 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); diff --git a/src/Microsoft.AspNetCore.Razor.Language/IRazorEngineBuilder.cs b/src/Microsoft.AspNetCore.Razor.Language/IRazorEngineBuilder.cs index 2d8e6ece7b..89529ec1b4 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/IRazorEngineBuilder.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/IRazorEngineBuilder.cs @@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Razor.Language IList Phases { get; } - bool DesignTime { get; set; } + bool DesignTime { get; } RazorEngine Build(); } diff --git a/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs b/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs index 3e1f233120..1c7c4240e0 100644 --- a/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs +++ b/src/Microsoft.AspNetCore.Razor.Language/RazorEngine.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Razor.Language public static RazorEngine Create(Action 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 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 configure) { - var builder = new DefaultRazorEngineBuilder(); + var builder = new DefaultRazorEngineBuilder(designTime: false); configure?.Invoke(builder); return builder.Build(); } diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorEngineBuilderTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorEngineBuilderTest.cs index d082f73756..a1c804287a 100644 --- a/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorEngineBuilderTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Language.Test/DefaultRazorEngineBuilderTest.cs @@ -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()); builder.Features.Add(Mock.Of());