using System.Text; namespace Json2CSharpCodeGenerator.Lib; public interface ICodeBuilder { string FileExtension { get; } string DisplayName { get; } string GetTypeName(JsonType type, IJsonClassGeneratorConfig config); void WriteClass(IJsonClassGeneratorConfig config, StringBuilder sw, JsonType type); void WriteFileStart(IJsonClassGeneratorConfig config, StringBuilder sw); void WriteFileEnd(IJsonClassGeneratorConfig config, StringBuilder sw); void WriteNamespaceStart(IJsonClassGeneratorConfig config, StringBuilder sw, bool root); void WriteNamespaceEnd(IJsonClassGeneratorConfig config, StringBuilder sw, bool root); void WriteDeserializationComment(IJsonClassGeneratorConfig config, StringBuilder sw, bool rootIsArray = false); void WriteClassMembers(IJsonClassGeneratorConfig config, StringBuilder sw, JsonType type, string prefix); IReadOnlyCollection ReservedKeywords { get; } bool IsReservedKeyword(string word); } public interface ICodeWriter { string FileExtension { get; } string DisplayName { get; } string GetTypeName(JsonType type, IJsonClassGeneratorConfig config); void WriteClass(IJsonClassGeneratorConfig config, TextWriter sw, JsonType type); void WriteFileStart(IJsonClassGeneratorConfig config, TextWriter sw); void WriteFileEnd(IJsonClassGeneratorConfig config, TextWriter sw); void WriteNamespaceStart(IJsonClassGeneratorConfig config, TextWriter sw, bool root); void WriteNamespaceEnd(IJsonClassGeneratorConfig config, TextWriter sw, bool root); }