2022-08-13 13:01:47 -07:00

34 lines
1.5 KiB
C#

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<string> 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);
}