public ClassStringBuilderSettings(IClassGenerationTemplate classGenerationTemplate, IMemberGenerationTemplate propertyGenerationTemplate, IReferenceImportGenerationTemplate referenceImportGenerationTemplate, INamespaceGenerationTemplate namespaceGenerationTemplate) { if (classGenerationTemplate == null) { throw new ArgumentNullException(nameof(classGenerationTemplate)); } if (propertyGenerationTemplate == null) { throw new ArgumentNullException(nameof(propertyGenerationTemplate)); } if (referenceImportGenerationTemplate == null) { throw new ArgumentNullException(nameof(referenceImportGenerationTemplate)); } if (namespaceGenerationTemplate == null) { throw new ArgumentNullException(nameof(namespaceGenerationTemplate)); } ClassGenerationTemplate = classGenerationTemplate; MemberGenerationTemple = propertyGenerationTemplate; ReferenceImportGenerationTemplate = referenceImportGenerationTemplate; NamespaceGenerationTemplate = namespaceGenerationTemplate; }
private void GenerateMembers(FormattedStringBuilder stringBuilder, IMemberGenerationTemplate memberGenerationTemplate, IList <MemberDetails> members) { foreach (MemberDetails details in members) { memberGenerationTemplate.Generate(stringBuilder, details.Name, details.Type, details.Cardinality); } }
public void Generate(FormattedStringBuilder stringBuilder, string className, Visibility visibility, IMemberGenerationTemplate propertyGenerationTemplate, IList <MemberDetails> memberDetails) { string modifier = visibility.Equals(Visibility.Private) ? "private" : "public"; stringBuilder.AppendLine($"{modifier} class {className}"); stringBuilder.AppendLine("{"); stringBuilder.LevelDown(); GenerateMembers(stringBuilder, propertyGenerationTemplate, memberDetails); stringBuilder.LevelUp(); stringBuilder.AppendLine("}"); }