private static CodeGenerator BuildWith(CodeGenerator cb, BuilderProperty property, string builderClassName) { cb.AppendLine("public ", builderClassName, " With", property.PropertyName, "(" + property.Type, " ", property.ParameterName, ")"); cb.OpenBlock(); cb.AppendLine(property.FieldName, " = ", property.ParameterName, ";"); cb.AppendLine("return this;"); cb.CloseBlock(); return(cb); }
private static IReadOnlyCollection <BuilderProperty> CreateBuilderProperties(AnalysisResult analysisResult) { var builderProperties = new List <BuilderProperty>(analysisResult.Properties.Count); foreach (var property in analysisResult.Properties) { var fieldName = ToFieldName(property); var fieldValue = ToFieldValue(property); var parameterName = ToParameterName(property); var builderProperty = new BuilderProperty(property.Type, property.Name, fieldName, fieldValue, parameterName); builderProperties.Add(builderProperty); } return(builderProperties); }
private static void BuildFieldAssignment(CodeGenerator cb, BuilderProperty property) { cb.AppendLine(property.FieldName, " = ", property.FieldValue, ";"); }
private static CodeGenerator BuildPropertyInit(CodeGenerator cb, BuilderProperty property) { cb.AppendLine(property.PropertyName, " = ", property.FieldName); return(cb); }