private void AppendTypeErrorMessage([NotNull] T4ParameterDescription description) { AppendIndent(); Result.Append("this.Error("); string message = $"The type \\'{description.TypeFqnString}\\' of the parameter " + $"\\'{description.PropertyNameString}\\' did not match" + " the type of the data passed to the template."; const int messageChunkSize = 85; int index = 0; foreach (string chunk in SplitStringIntoChunks(message, messageChunkSize)) { if (index != 0) { Result.AppendLine(" +"); AppendIndent(); Result.Append(new string(' ', indentSize * 2)); } Result.Append($"\"{chunk}\""); index += 1; } Result.AppendLine(");"); }
protected override void AppendParameterDeclaration(T4ParameterDescription description) { foreach (string inspection in DisabledPropertyInspections) { AppendDisabledInspections(inspection); } Result.Append(" private global::"); var type = description.TypeToken; if (CSharpLexer.IsKeyword(type.GetText())) { Result.Append("@"); } Result.AppendMapped(type); Result.Append(" "); var name = description.NameToken; if (CSharpLexer.IsKeyword(name.GetText())) { Result.Append("@"); } Result.AppendMapped(name); Result.Append(" => "); Result.Append(description.FieldNameString); Result.AppendLine(";"); }
public override void VisitParameterDirectiveNode(IT4ParameterDirective parameterDirectiveParam) { var description = T4ParameterDescription.FromDirective(parameterDirectiveParam); if (description == null) { return; } Result.Append(description); }
private void AppendFieldDeclaration([NotNull] T4ParameterDescription description) { AppendSyntheticAttribute(); AppendIndent(); Result.Append("private global::"); Result.Append(description.TypeString); Result.Append(" "); Result.Append(description.FieldNameString); Result.AppendLine(";"); }
protected virtual void AppendFieldDeclaration([NotNull] T4ParameterDescription description) { AppendIndent(); Result.Append("private "); description.AppendType(Result); Result.Append(" "); Result.Append(description.FieldNameString); Result.AppendLine(";"); Result.AppendLine(); }
protected override void AppendParameterDeclaration(T4ParameterDescription description) { // Range maps of this converter are ignored, so it's safe to use Append instead of AppendMapped AppendIndent(); Result.Append("private "); Result.Append(description.TypeString); Result.Append(" "); Result.Append(description.NameString); Result.Append(" => "); Result.Append(description.FieldNameString); Result.AppendLine(";"); }
protected override void AppendParameterDeclaration(T4ParameterDescription description) { foreach (string inspection in DisabledPropertyInspections) { AppendDisabledInspections(inspection); } Result.Append(" private "); description.AppendTypeMapped(Result); Result.Append(" "); description.AppendName(Result); Result.Append(" => "); Result.Append(description.FieldNameString); Result.AppendLine(";"); }
private void AppendPropertyInitializationFromSession([NotNull] T4ParameterDescription description) { AppendIndent(); Result.AppendLine($"bool {description.PropertyNameString}ValueAcquired = false;"); AppendIndent(); Result.AppendLine($@"if (this.Session.ContainsKey(""{description.PropertyNameString}""))"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.Append($"this.{description.FieldNameString} = (("); description.AppendType(Result); Result.AppendLine($@")(this.Session[""{description.PropertyNameString}""]));"); AppendIndent(); Result.AppendLine($"{description.PropertyNameString}ValueAcquired = true;"); } }
private void AppendPropertyInitializationFromHost(bool hasHost, T4ParameterDescription description) { if (!hasHost) { return; } AppendIndent(); Result.AppendLine($"if (({description.PropertyNameString}ValueAcquired == false))"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.AppendLine( "string parameterValue = this.Host.ResolveParameterValue(\"Property\"," + $" \"PropertyDirectiveProcessor\", \"{description.PropertyNameString}\");"); AppendIndent(); Result.AppendLine("if ((string.IsNullOrEmpty(parameterValue) == false))"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.Append( $"{T4TextTemplatingFQNs.TypeConverter} tc = {T4TextTemplatingFQNs.GetConverter}(typeof("); description.AppendType(Result); Result.AppendLine("));"); AppendIndent(); Result.AppendLine("if (((tc != null) "); AppendIndent(); Result.Append(new string(' ', indentSize * 3)); Result.AppendLine("&& tc.CanConvertFrom(typeof(string))))"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.Append($"this.{description.FieldNameString} = (("); description.AppendType(Result); Result.AppendLine(")(tc.ConvertFrom(parameterValue)));"); AppendIndent(); Result.AppendLine($"{description.PropertyNameString}ValueAcquired = true;"); } AppendIndent(); Result.AppendLine("else"); using (new CodeBlockCookie(this)) { AppendTypeErrorMessage(description); } } } }
private void AppendPropertyInitializationFromContext([NotNull] T4ParameterDescription description) { AppendIndent(); Result.AppendLine($"if (({description.PropertyNameString}ValueAcquired == false))"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.AppendLine( $@"object data = global::System.Runtime.Remoting.Messaging.CallContext.LogicalGetData(""{description.PropertyNameString}"");"); AppendIndent(); Result.AppendLine("if ((data != null))"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.Append($"this.{description.FieldNameString} = (("); description.AppendType(Result); Result.AppendLine(")(data));"); } } }
protected override void AppendParameterDeclaration(T4ParameterDescription description) { // Range maps of this converter are ignored, so it's safe to use Append instead of AppendMapped Result.AppendLine($@"/// <summary> /// Access the {description.PropertyNameString} parameter of the template. /// </summary>"); AppendIndent(); Result.Append("private "); description.AppendTypeMapped(Result); Result.Append(" "); description.AppendName(Result); Result.AppendLine(); using (new CodeBlockCookie(this)) { AppendIndent(); Result.AppendLine("get"); using (new CodeBlockCookie(this)) { AppendIndent(); Result.AppendLine($"return this.{description.FieldNameString};"); } } Result.AppendLine(); }
protected override void AppendFieldDeclaration(T4ParameterDescription description) { AppendSyntheticAttribute(); base.AppendFieldDeclaration(description); }
public void Append([NotNull] T4ParameterDescription description) => MyParameterDescriptions.Add(description);
protected abstract void AppendParameterDeclaration([NotNull] T4ParameterDescription description);