Skip to content

Commit

Permalink
Add the extracted generation templates
Browse files Browse the repository at this point in the history
  • Loading branch information
AndrewBenzSW committed Jul 10, 2024
1 parent 8e62ec7 commit 5f2bab8
Show file tree
Hide file tree
Showing 130 changed files with 16,656 additions and 0 deletions.
68 changes: 68 additions & 0 deletions generation/templates/AbstractOpenAPISchema.mustache
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{{>partial_header}}

using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

namespace {{packageName}}.{{modelPackage}}
{
/// <summary>
/// Abstract base class for oneOf, anyOf schemas in the OpenAPI specification
/// </summary>
{{>visibility}} abstract partial class AbstractOpenAPISchema
{
/// <summary>
/// Custom JSON serializer
/// </summary>
static public readonly JsonSerializerSettings SerializerSettings = new JsonSerializerSettings
{
// OpenAPI generated types generally hide default constructors.
ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
MissingMemberHandling = MissingMemberHandling.Error,
ContractResolver = new DefaultContractResolver
{
NamingStrategy = new CamelCaseNamingStrategy
{
OverrideSpecifiedNames = false
}
}
};

/// <summary>
/// Custom JSON serializer for objects with additional properties
/// </summary>
static public readonly JsonSerializerSettings AdditionalPropertiesSerializerSettings = new JsonSerializerSettings
{
// OpenAPI generated types generally hide default constructors.
ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor,
MissingMemberHandling = MissingMemberHandling.Ignore,
ContractResolver = new DefaultContractResolver
{
NamingStrategy = new CamelCaseNamingStrategy
{
OverrideSpecifiedNames = false
}
}
};

/// <summary>
/// Gets or Sets the actual instance
/// </summary>
public abstract Object ActualInstance { get; set; }

/// <summary>
/// Gets or Sets IsNullable to indicate whether the instance is nullable
/// </summary>
public bool IsNullable { get; protected set; }

/// <summary>
/// Gets or Sets the schema type, which can be either `oneOf` or `anyOf`
/// </summary>
public string SchemaType { get; protected set; }

/// <summary>
/// Converts the instance into JSON string.
/// </summary>
public abstract string ToJson();
}
}
Loading

0 comments on commit 5f2bab8

Please sign in to comment.