Make IntermediateNodeBuilder internal (#1455)

This commit is contained in:
Ajay Bhargav Baaskaran 2017-06-23 11:15:25 -07:00 committed by GitHub
parent 6bbcbc1261
commit 5e57e9f235
6 changed files with 40 additions and 47 deletions

View File

@ -52,12 +52,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
Debug.Assert(index >= 0);
var pageAttribute = new CSharpCodeIntermediateNode();
IntermediateNodeBuilder.Create(pageAttribute)
.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = attribute,
});
pageAttribute.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = attribute,
});
documentNode.Children.Insert(index, pageAttribute);
}

View File

@ -31,24 +31,22 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var endContextMethodName = "EndContext"; /* ORIGINAL: EndContextMethodName */
var beginNode = new CSharpCodeIntermediateNode();
IntermediateNodeBuilder.Create(beginNode)
.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = string.Format("{0}({1}, {2}, {3});",
beginContextMethodName,
item.Source.AbsoluteIndex.ToString(CultureInfo.InvariantCulture),
item.Source.Length.ToString(CultureInfo.InvariantCulture),
item.IsLiteral ? "true" : "false")
});
beginNode.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = string.Format("{0}({1}, {2}, {3});",
beginContextMethodName,
item.Source.AbsoluteIndex.ToString(CultureInfo.InvariantCulture),
item.Source.Length.ToString(CultureInfo.InvariantCulture),
item.IsLiteral ? "true" : "false")
});
var endNode = new CSharpCodeIntermediateNode();
IntermediateNodeBuilder.Create(endNode)
.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = string.Format("{0}();", endContextMethodName)
});
endNode.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = string.Format("{0}();", endContextMethodName)
});
var nodeIndex = item.Parent.Children.IndexOf(item.Node);
item.Parent.Children.Insert(nodeIndex, beginNode);

View File

@ -30,9 +30,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
string.Equals(node.Descriptor.IndexerTypeName, ModelExpressionTypeName, StringComparison.Ordinal)))
{
var expression = new CSharpExpressionIntermediateNode();
var builder = IntermediateNodeBuilder.Create(expression);
builder.Add(new IntermediateToken()
expression.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = "ModelExpressionProvider.CreateModelExpression(ViewData, __model => ",
@ -42,13 +41,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
{
// A 'simple' expression will look like __model => __model.Foo
builder.Add(new IntermediateToken()
expression.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = "__model."
});
builder.Add(token);
expression.Children.Add(token);
}
else
{
@ -61,7 +60,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
if (nestedExpression.Children[j] is IntermediateToken cSharpToken &&
cSharpToken.IsCSharp)
{
builder.Add(cSharpToken);
expression.Children.Add(cSharpToken);
}
}
@ -70,7 +69,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
}
}
builder.Add(new IntermediateToken()
expression.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = ")",

View File

@ -23,21 +23,19 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
var viewDataType = $"global::Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<{modelType}>";
var vddProperty = new CSharpCodeIntermediateNode();
IntermediateNodeBuilder.Create(vddProperty)
.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = $"public {viewDataType} ViewData => ({viewDataType})PageContext?.ViewData;",
});
vddProperty.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = $"public {viewDataType} ViewData => ({viewDataType})PageContext?.ViewData;",
});
@class.Children.Add(vddProperty);
var modelProperty = new CSharpCodeIntermediateNode();
IntermediateNodeBuilder.Create(modelProperty)
.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = $"public {modelType} Model => ViewData.Model;",
});
modelProperty.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = $"public {modelType} Model => ViewData.Model;",
});
@class.Children.Add(modelProperty);
}

View File

@ -49,12 +49,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
WriteClass(writer, tagHelper);
var statement = new CSharpCodeIntermediateNode();
IntermediateNodeBuilder.Create(statement)
.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = writer.GenerateCode()
});
statement.Children.Add(new IntermediateToken()
{
Kind = IntermediateToken.TokenKind.CSharp,
Content = writer.GenerateCode()
});
@class.Children.Add(statement);
}

View File

@ -5,7 +5,7 @@ using System;
namespace Microsoft.AspNetCore.Razor.Language.Intermediate
{
public abstract class IntermediateNodeBuilder
internal abstract class IntermediateNodeBuilder
{
public static IntermediateNodeBuilder Create(IntermediateNode root)
{