Make IntermediateNodeBuilder internal (#1455)
This commit is contained in:
parent
6bbcbc1261
commit
5e57e9f235
|
|
@ -52,12 +52,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
Debug.Assert(index >= 0);
|
Debug.Assert(index >= 0);
|
||||||
|
|
||||||
var pageAttribute = new CSharpCodeIntermediateNode();
|
var pageAttribute = new CSharpCodeIntermediateNode();
|
||||||
IntermediateNodeBuilder.Create(pageAttribute)
|
pageAttribute.Children.Add(new IntermediateToken()
|
||||||
.Add(new IntermediateToken()
|
{
|
||||||
{
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Content = attribute,
|
||||||
Content = attribute,
|
});
|
||||||
});
|
|
||||||
|
|
||||||
documentNode.Children.Insert(index, pageAttribute);
|
documentNode.Children.Insert(index, pageAttribute);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,24 +31,22 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
var endContextMethodName = "EndContext"; /* ORIGINAL: EndContextMethodName */
|
var endContextMethodName = "EndContext"; /* ORIGINAL: EndContextMethodName */
|
||||||
|
|
||||||
var beginNode = new CSharpCodeIntermediateNode();
|
var beginNode = new CSharpCodeIntermediateNode();
|
||||||
IntermediateNodeBuilder.Create(beginNode)
|
beginNode.Children.Add(new IntermediateToken()
|
||||||
.Add(new IntermediateToken()
|
{
|
||||||
{
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Content = string.Format("{0}({1}, {2}, {3});",
|
||||||
Content = string.Format("{0}({1}, {2}, {3});",
|
beginContextMethodName,
|
||||||
beginContextMethodName,
|
item.Source.AbsoluteIndex.ToString(CultureInfo.InvariantCulture),
|
||||||
item.Source.AbsoluteIndex.ToString(CultureInfo.InvariantCulture),
|
item.Source.Length.ToString(CultureInfo.InvariantCulture),
|
||||||
item.Source.Length.ToString(CultureInfo.InvariantCulture),
|
item.IsLiteral ? "true" : "false")
|
||||||
item.IsLiteral ? "true" : "false")
|
});
|
||||||
});
|
|
||||||
|
|
||||||
var endNode = new CSharpCodeIntermediateNode();
|
var endNode = new CSharpCodeIntermediateNode();
|
||||||
IntermediateNodeBuilder.Create(endNode)
|
endNode.Children.Add(new IntermediateToken()
|
||||||
.Add(new IntermediateToken()
|
{
|
||||||
{
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Content = string.Format("{0}();", endContextMethodName)
|
||||||
Content = string.Format("{0}();", endContextMethodName)
|
});
|
||||||
});
|
|
||||||
|
|
||||||
var nodeIndex = item.Parent.Children.IndexOf(item.Node);
|
var nodeIndex = item.Parent.Children.IndexOf(item.Node);
|
||||||
item.Parent.Children.Insert(nodeIndex, beginNode);
|
item.Parent.Children.Insert(nodeIndex, beginNode);
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,8 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
string.Equals(node.Descriptor.IndexerTypeName, ModelExpressionTypeName, StringComparison.Ordinal)))
|
string.Equals(node.Descriptor.IndexerTypeName, ModelExpressionTypeName, StringComparison.Ordinal)))
|
||||||
{
|
{
|
||||||
var expression = new CSharpExpressionIntermediateNode();
|
var expression = new CSharpExpressionIntermediateNode();
|
||||||
var builder = IntermediateNodeBuilder.Create(expression);
|
|
||||||
|
|
||||||
builder.Add(new IntermediateToken()
|
expression.Children.Add(new IntermediateToken()
|
||||||
{
|
{
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Content = "ModelExpressionProvider.CreateModelExpression(ViewData, __model => ",
|
Content = "ModelExpressionProvider.CreateModelExpression(ViewData, __model => ",
|
||||||
|
|
@ -42,13 +41,13 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
{
|
{
|
||||||
// A 'simple' expression will look like __model => __model.Foo
|
// A 'simple' expression will look like __model => __model.Foo
|
||||||
|
|
||||||
builder.Add(new IntermediateToken()
|
expression.Children.Add(new IntermediateToken()
|
||||||
{
|
{
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Content = "__model."
|
Content = "__model."
|
||||||
});
|
});
|
||||||
|
|
||||||
builder.Add(token);
|
expression.Children.Add(token);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -61,7 +60,7 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
if (nestedExpression.Children[j] is IntermediateToken cSharpToken &&
|
if (nestedExpression.Children[j] is IntermediateToken cSharpToken &&
|
||||||
cSharpToken.IsCSharp)
|
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,
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Content = ")",
|
Content = ")",
|
||||||
|
|
|
||||||
|
|
@ -23,21 +23,19 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
|
|
||||||
var viewDataType = $"global::Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<{modelType}>";
|
var viewDataType = $"global::Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<{modelType}>";
|
||||||
var vddProperty = new CSharpCodeIntermediateNode();
|
var vddProperty = new CSharpCodeIntermediateNode();
|
||||||
IntermediateNodeBuilder.Create(vddProperty)
|
vddProperty.Children.Add(new IntermediateToken()
|
||||||
.Add(new IntermediateToken()
|
{
|
||||||
{
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Content = $"public {viewDataType} ViewData => ({viewDataType})PageContext?.ViewData;",
|
||||||
Content = $"public {viewDataType} ViewData => ({viewDataType})PageContext?.ViewData;",
|
});
|
||||||
});
|
|
||||||
@class.Children.Add(vddProperty);
|
@class.Children.Add(vddProperty);
|
||||||
|
|
||||||
var modelProperty = new CSharpCodeIntermediateNode();
|
var modelProperty = new CSharpCodeIntermediateNode();
|
||||||
IntermediateNodeBuilder.Create(modelProperty)
|
modelProperty.Children.Add(new IntermediateToken()
|
||||||
.Add(new IntermediateToken()
|
{
|
||||||
{
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Content = $"public {modelType} Model => ViewData.Model;",
|
||||||
Content = $"public {modelType} Model => ViewData.Model;",
|
});
|
||||||
});
|
|
||||||
@class.Children.Add(modelProperty);
|
@class.Children.Add(modelProperty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,12 +49,11 @@ namespace Microsoft.AspNetCore.Mvc.Razor.Extensions
|
||||||
WriteClass(writer, tagHelper);
|
WriteClass(writer, tagHelper);
|
||||||
|
|
||||||
var statement = new CSharpCodeIntermediateNode();
|
var statement = new CSharpCodeIntermediateNode();
|
||||||
IntermediateNodeBuilder.Create(statement)
|
statement.Children.Add(new IntermediateToken()
|
||||||
.Add(new IntermediateToken()
|
{
|
||||||
{
|
Kind = IntermediateToken.TokenKind.CSharp,
|
||||||
Kind = IntermediateToken.TokenKind.CSharp,
|
Content = writer.GenerateCode()
|
||||||
Content = writer.GenerateCode()
|
});
|
||||||
});
|
|
||||||
|
|
||||||
@class.Children.Add(statement);
|
@class.Children.Add(statement);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ using System;
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
||||||
{
|
{
|
||||||
public abstract class IntermediateNodeBuilder
|
internal abstract class IntermediateNodeBuilder
|
||||||
{
|
{
|
||||||
public static IntermediateNodeBuilder Create(IntermediateNode root)
|
public static IntermediateNodeBuilder Create(IntermediateNode root)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue