// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. namespace System.Web.Razor.Generator { internal abstract class BaseCodeWriter : CodeWriter { public override void WriteSnippet(string snippet) { InnerWriter.Write(snippet); } protected internal override void EmitStartMethodInvoke(string methodName) { EmitStartMethodInvoke(methodName, new string[0]); } protected internal override void EmitStartMethodInvoke(string methodName, params string[] genericArguments) { InnerWriter.Write(methodName); if (genericArguments != null && genericArguments.Length > 0) { WriteStartGenerics(); for (int i = 0; i < genericArguments.Length; i++) { if (i > 0) { WriteParameterSeparator(); } WriteSnippet(genericArguments[i]); } WriteEndGenerics(); } InnerWriter.Write("("); } protected internal override void EmitEndMethodInvoke() { InnerWriter.Write(")"); } protected internal override void EmitEndConstructor() { InnerWriter.Write(")"); } protected internal override void EmitEndLambdaExpression() { } public override void WriteParameterSeparator() { InnerWriter.Write(", "); } protected internal void WriteCommaSeparatedList(T[] items, Action writeItemAction) { for (int i = 0; i < items.Length; i++) { if (i > 0) { InnerWriter.Write(", "); } writeItemAction(items[i]); } } protected internal virtual void WriteStartGenerics() { } protected internal virtual void WriteEndGenerics() { } } }