Skip to content
This repository was archived by the owner on Dec 19, 2018. It is now read-only.

Commit af6249b

Browse files
author
N. Taylor Mullen
committed
Addressed code review comments
1 parent b558551 commit af6249b

File tree

5 files changed

+21
-30
lines changed

5 files changed

+21
-30
lines changed

src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpCodeBuilder.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ public override CodeBuilderResult Build()
3939
writer.WriteLine("private static object @__o;");
4040
}
4141

42-
var csharpCodeVisitor = DecorateCSharpCodeVisitor(writer,
43-
Context,
44-
new CSharpCodeVisitor(writer, Context));
42+
var csharpCodeVisitor = CreateCSharpCodeVisitor(writer, Context);
4543

4644
new CSharpHelperVisitor(csharpCodeVisitor, writer, Context).Accept(Tree.Chunks);
4745
new CSharpTypeMemberVisitor(csharpCodeVisitor, writer, Context).Accept(Tree.Chunks);
@@ -68,11 +66,10 @@ public override CodeBuilderResult Build()
6866
return new CodeBuilderResult(writer.GenerateCode(), writer.LineMappingManager.Mappings);
6967
}
7068

71-
protected virtual CSharpCodeVisitor DecorateCSharpCodeVisitor([NotNull] CSharpCodeWriter writer,
72-
[NotNull] CodeBuilderContext context,
73-
[NotNull] CSharpCodeVisitor incomingVisitor)
69+
protected virtual CSharpCodeVisitor CreateCSharpCodeVisitor([NotNull] CSharpCodeWriter writer,
70+
[NotNull] CodeBuilderContext context)
7471
{
75-
return incomingVisitor;
72+
return new CSharpCodeVisitor(writer, context);
7673
}
7774

7875
protected virtual CSharpCodeWritingScope BuildClassDeclaration(CSharpCodeWriter writer)

src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/CSharpTagHelperCodeRenderer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public class CSharpTagHelperCodeRenderer
2323
private static readonly TagHelperAttributeDescriptorComparer AttributeDescriptorComparer =
2424
new TagHelperAttributeDescriptorComparer();
2525

26-
private readonly TagHelperAttributeValueCodeRenderer _attributeValueCodeRenderer;
2726
private readonly CSharpCodeWriter _writer;
2827
private readonly CodeBuilderContext _context;
2928
private readonly IChunkVisitor _bodyVisitor;
@@ -37,17 +36,18 @@ public class CSharpTagHelperCodeRenderer
3736
/// <param name="context">A <see cref="CodeGeneratorContext"/> instance that contains information about
3837
/// the current code generation process.</param>
3938
public CSharpTagHelperCodeRenderer([NotNull] IChunkVisitor bodyVisitor,
40-
[NotNull] TagHelperAttributeValueCodeRenderer attributeValueCodeRenderer,
4139
[NotNull] CSharpCodeWriter writer,
4240
[NotNull] CodeBuilderContext context)
4341
{
4442
_bodyVisitor = bodyVisitor;
45-
_attributeValueCodeRenderer = attributeValueCodeRenderer;
4643
_writer = writer;
4744
_context = context;
4845
_tagHelperContext = context.Host.GeneratedClassContext.GeneratedTagHelperContext;
46+
AttributeValueCodeRenderer = new TagHelperAttributeValueCodeRenderer();
4947
}
5048

49+
public TagHelperAttributeValueCodeRenderer AttributeValueCodeRenderer { get; set; }
50+
5151
/// <summary>
5252
/// Renders the code to render the given <paramref name="chunk"/>.
5353
/// </summary>
@@ -405,7 +405,7 @@ private void BuildBufferedWritingScope(string writerVariable, Action renderCode)
405405
private void RenderAttributeValue(TagHelperAttributeDescriptor attributeDescriptor,
406406
Action<CSharpCodeWriter> valueRenderer)
407407
{
408-
_attributeValueCodeRenderer.RenderAttributeValue(attributeDescriptor, _writer, _context, valueRenderer);
408+
AttributeValueCodeRenderer.RenderAttributeValue(attributeDescriptor, _writer, _context, valueRenderer);
409409
}
410410

411411
private static bool AcceptsRazorCode(TagHelperAttributeDescriptor attributeDescriptor)

src/Microsoft.AspNet.Razor/Generator/Compiler/CodeBuilder/CSharp/Visitors/CSharpCodeVisitor.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@ public CSharpCodeVisitor(CSharpCodeWriter writer, CodeBuilderContext context)
2222
: base(writer, context)
2323
{
2424
_paddingBuilder = new CSharpPaddingBuilder(context.Host);
25-
TagHelperRenderer = new CSharpTagHelperCodeRenderer(this,
26-
new TagHelperAttributeValueCodeRenderer(),
27-
writer,
28-
context);
25+
TagHelperRenderer = new CSharpTagHelperCodeRenderer(this, writer, context);
2926
}
3027

3128
public CSharpTagHelperCodeRenderer TagHelperRenderer { get; set; }

test/Microsoft.AspNet.Razor.Test/Generator/TagHelperAttributeCodeGeneratorTest.cs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ public class TagHelperAttributeCodeGeneratorTests : TagHelperTestBase
1717
[Fact]
1818
public void TagHelpers_CanReplaceAttributeCodeGeneratorLogic()
1919
{
20+
// Arrange
2021
var inputTypePropertyInfo = new Mock<PropertyInfo>();
2122
inputTypePropertyInfo.Setup(ipi => ipi.PropertyType).Returns(typeof(string));
2223
inputTypePropertyInfo.Setup(ipi => ipi.Name).Returns("Type");
2324
var checkedPropertyInfo = new Mock<PropertyInfo>();
2425
checkedPropertyInfo.Setup(ipi => ipi.PropertyType).Returns(typeof(bool));
2526
checkedPropertyInfo.Setup(ipi => ipi.Name).Returns("Checked");
26-
// Arrange
2727
var tagHelperProvider = new TagHelperDescriptorProvider(
2828
new TagHelperDescriptor[]
2929
{
@@ -73,17 +73,14 @@ public AttributeCodeGeneratorReplacingCodeBuilder(CodeBuilderContext context)
7373
{
7474
}
7575

76-
protected override CSharpCodeVisitor DecorateCSharpCodeVisitor([NotNull] CSharpCodeWriter writer,
77-
[NotNull] CodeBuilderContext context,
78-
[NotNull] CSharpCodeVisitor incomingVisitor)
76+
protected override CSharpCodeVisitor CreateCSharpCodeVisitor([NotNull] CSharpCodeWriter writer,
77+
[NotNull] CodeBuilderContext context)
7978
{
80-
incomingVisitor.TagHelperRenderer =
81-
new CSharpTagHelperCodeRenderer(incomingVisitor,
82-
new CustomTagHelperAttributeCodeGenerator(),
83-
writer,
84-
context);
79+
var bodyVisitor = base.CreateCSharpCodeVisitor(writer, context);
80+
81+
bodyVisitor.TagHelperRenderer.AttributeValueCodeRenderer = new CustomTagHelperAttributeCodeGenerator();
8582

86-
return base.DecorateCSharpCodeVisitor(writer, context, incomingVisitor);
83+
return bodyVisitor;
8784
}
8885
}
8986

@@ -94,7 +91,7 @@ public override void RenderAttributeValue([NotNull]TagHelperAttributeDescriptor
9491
[NotNull]CodeGeneratorContext context,
9592
[NotNull]Action<CSharpCodeWriter> renderAttributeValue)
9693
{
97-
writer.Write("**From custom attribute code generator**: ");
94+
writer.Write("**From custom attribute code renderer**: ");
9895

9996
base.RenderAttributeValue(attributeInfo, writer, context, renderAttributeValue);
10097
}

test/Microsoft.AspNet.Razor.Test/TestFiles/CodeGenerator/CS/Output/BasicTagHelpers.CustomAttributeCodeGenerator.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public BasicTagHelpers()
1313
#pragma warning disable 1998
1414
public override async Task ExecuteAsync()
1515
{
16-
var __tagHelperAttributeValue = string.Empty;
16+
var __tagHelperBufferedStringValue = string.Empty;
1717
PTagHelper __p_PTagHelper;
1818
InputTagHelper __input_InputTagHelper;
1919
InputTagHelper2 __input_InputTagHelper2;
@@ -32,7 +32,7 @@ public override async Task ExecuteAsync()
3232
__tagHelperManager.EndTagHelpersScope();
3333
WriteLiteral("\r\n ");
3434
__input_InputTagHelper = __tagHelperManager.InstantiateTagHelper<InputTagHelper>();
35-
__input_InputTagHelper.Type = **From custom attribute code generator**: "text";
35+
__input_InputTagHelper.Type = **From custom attribute code renderer**: "text";
3636
__tagHelperManager.AddTagHelperAttribute("type", __input_InputTagHelper.Type);
3737
__input_InputTagHelper2 = __tagHelperManager.InstantiateTagHelper<InputTagHelper2>();
3838
__input_InputTagHelper2.Type = __input_InputTagHelper.Type;
@@ -43,11 +43,11 @@ public override async Task ExecuteAsync()
4343
__tagHelperManager.EndTagHelpersScope();
4444
WriteLiteral("\r\n ");
4545
__input_InputTagHelper = __tagHelperManager.InstantiateTagHelper<InputTagHelper>();
46-
__input_InputTagHelper.Type = **From custom attribute code generator**: "checkbox";
46+
__input_InputTagHelper.Type = **From custom attribute code renderer**: "checkbox";
4747
__tagHelperManager.AddTagHelperAttribute("type", __input_InputTagHelper.Type);
4848
__input_InputTagHelper2 = __tagHelperManager.InstantiateTagHelper<InputTagHelper2>();
4949
__input_InputTagHelper2.Type = __input_InputTagHelper.Type;
50-
__input_InputTagHelper2.Checked = **From custom attribute code generator**: true;
50+
__input_InputTagHelper2.Checked = **From custom attribute code renderer**: true;
5151
__tagHelperManager.AddTagHelperAttribute("checked", __input_InputTagHelper2.Checked);
5252
__tagHelperManager.StartTagHelpersScope("input");
5353
await __tagHelperManager.ExecuteTagHelpersAsync();

0 commit comments

Comments
 (0)