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);
        }
Beispiel #2
0
        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);
 }