public static ArrayBuilder AddArray(this CodeBlockBuilder method) { var arrayBuilder = ArrayBuilder.New(); method.AddCode(arrayBuilder); return(arrayBuilder); }
public static MethodCallBuilder AddMethodCall(this CodeBlockBuilder builder) { var methodCallBuilder = MethodCallBuilder.New(); builder.AddCode(methodCallBuilder); return(methodCallBuilder); }
public static CodeBlockBuilder AddIf( this CodeBlockBuilder builder, Action <IfBuilder> configure) { var ifBuilder = IfBuilder.New(); configure(ifBuilder); return(builder.AddCode(ifBuilder)); }
public static CodeBlockBuilder AddMethodCall( this CodeBlockBuilder builder, Action <MethodCallBuilder> configure) { var methodCallBuilder = new MethodCallBuilder(); configure(methodCallBuilder); return(builder.AddCode(methodCallBuilder)); }
public static AssignmentBuilder AddAssigment( this CodeBlockBuilder builder, string assignedTo) { AssignmentBuilder assignmentBuilder = AssignmentBuilder .New() .SetLefthandSide(assignedTo); builder.AddCode(assignmentBuilder); return(assignmentBuilder); }
public static AssignmentBuilder AddAssigment( this CodeBlockBuilder builder, string?assignedTo = null) { AssignmentBuilder assignmentBuilder = AssignmentBuilder .New(); if (assignedTo is not null) { assignmentBuilder.SetLefthandSide(assignedTo); } builder.AddCode(assignmentBuilder); return(assignmentBuilder); }
protected override void Generate( CodeWriter writer, InputObjectTypeDescriptor namedTypeDescriptor, out string fileName) { fileName = CreateInputValueFormatter(namedTypeDescriptor); NameString typeName = namedTypeDescriptor.Name; ClassBuilder classBuilder = ClassBuilder.New() .SetName(fileName) .AddImplements(TypeNames.IInputValueFormatter); var neededSerializers = namedTypeDescriptor.Properties .ToLookup(x => x.Type.Name) .Select(x => x.First()) .ToDictionary(x => x.Type.Name); // Initialize Method CodeBlockBuilder initialize = classBuilder .AddMethod("Initialize") .SetPublic() .AddParameter("serializerResolver", x => x.SetType(TypeNames.ISerializerResolver)) .AddBody(); foreach (var property in neededSerializers.Values) { if (property.Type.GetName().Value is { } name) { MethodCallBuilder call = MethodCallBuilder.New() .SetMethodName("serializerResolver." + nameof(ISerializerResolver.GetInputValueFormatter)) .AddArgument(name.AsStringToken() ?? "") .SetPrefix($"{GetFieldName(name)}Formatter = "); initialize.AddCode(call); }
public static CodeBlockBuilder AddLine( this CodeBlockBuilder builder, string code) { return(builder.AddCode(CodeLineBuilder.From(code))); }