34 lines
1.5 KiB
C#
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);
|
|
} |