forked from loafle/openapi-generator-original
Support models with multi-level hierarchy (via roxspring) (#4503)
* Example of broken multi-level hierarchy * Support for multiple levels of hierarchy in model objects * Support for multiple levels of hierarchy in generators * Regenerated samples * Temporarily skip scalaz sample verification, which is having issue with Java version in CI container * Re-enable scalaz in verify samples Co-authored-by: Rob Oxspring <roxspring@imapmail.org>
This commit is contained in:
committed by
William Cheng
parent
daec02b8c5
commit
376e419d0b
@@ -32,6 +32,7 @@ namespace Org.OpenAPITools.Model
|
||||
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
|
||||
[JsonSubtypes.KnownSubType(typeof(Dog), "Dog")]
|
||||
[JsonSubtypes.KnownSubType(typeof(Cat), "Cat")]
|
||||
[JsonSubtypes.KnownSubType(typeof(BigCat), "BigCat")]
|
||||
public partial class Animal : IEquatable<Animal>, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Runtime.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter;
|
||||
|
||||
namespace Org.OpenAPITools.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// BigCat
|
||||
/// </summary>
|
||||
[DataContract]
|
||||
public partial class BigCat : Cat, IEquatable<BigCat>, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines Kind
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum KindEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Enum Lions for value: lions
|
||||
/// </summary>
|
||||
[EnumMember(Value = "lions")]
|
||||
Lions = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Tigers for value: tigers
|
||||
/// </summary>
|
||||
[EnumMember(Value = "tigers")]
|
||||
Tigers = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Leopards for value: leopards
|
||||
/// </summary>
|
||||
[EnumMember(Value = "leopards")]
|
||||
Leopards = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Jaguars for value: jaguars
|
||||
/// </summary>
|
||||
[EnumMember(Value = "jaguars")]
|
||||
Jaguars = 4
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets Kind
|
||||
/// </summary>
|
||||
[DataMember(Name="kind", EmitDefaultValue=false)]
|
||||
public KindEnum? Kind { get; set; }
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BigCat" /> class.
|
||||
/// </summary>
|
||||
[JsonConstructorAttribute]
|
||||
protected BigCat() { }
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BigCat" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kind">kind.</param>
|
||||
public BigCat(KindEnum? kind = default(KindEnum?), string className = default(string), string color = "red", bool declawed = default(bool)) : base(declawed)
|
||||
{
|
||||
this.Kind = kind;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>String presentation of the object</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("class BigCat {\n");
|
||||
sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n");
|
||||
sb.Append(" Kind: ").Append(Kind).Append("\n");
|
||||
sb.Append("}\n");
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the JSON string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>JSON string presentation of the object</returns>
|
||||
public override string ToJson()
|
||||
{
|
||||
return JsonConvert.SerializeObject(this, Formatting.Indented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if objects are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Object to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public override bool Equals(object input)
|
||||
{
|
||||
return this.Equals(input as BigCat);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if BigCat instances are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Instance of BigCat to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public bool Equals(BigCat input)
|
||||
{
|
||||
if (input == null)
|
||||
return false;
|
||||
|
||||
return base.Equals(input) &&
|
||||
(
|
||||
this.Kind == input.Kind ||
|
||||
(this.Kind != null &&
|
||||
this.Kind.Equals(input.Kind))
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the hash code
|
||||
/// </summary>
|
||||
/// <returns>Hash code</returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
unchecked // Overflow is fine, just wrap
|
||||
{
|
||||
int hashCode = base.GetHashCode();
|
||||
if (this.Kind != null)
|
||||
hashCode = hashCode * 59 + this.Kind.GetHashCode();
|
||||
return hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To validate all properties of the instance
|
||||
/// </summary>
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
|
||||
{
|
||||
foreach(var x in base.BaseValidate(validationContext)) yield return x;
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Runtime.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter;
|
||||
|
||||
namespace Org.OpenAPITools.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// BigCatAllOf
|
||||
/// </summary>
|
||||
[DataContract]
|
||||
public partial class BigCatAllOf : IEquatable<BigCatAllOf>, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines Kind
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum KindEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Enum Lions for value: lions
|
||||
/// </summary>
|
||||
[EnumMember(Value = "lions")]
|
||||
Lions = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Tigers for value: tigers
|
||||
/// </summary>
|
||||
[EnumMember(Value = "tigers")]
|
||||
Tigers = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Leopards for value: leopards
|
||||
/// </summary>
|
||||
[EnumMember(Value = "leopards")]
|
||||
Leopards = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Jaguars for value: jaguars
|
||||
/// </summary>
|
||||
[EnumMember(Value = "jaguars")]
|
||||
Jaguars = 4
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets Kind
|
||||
/// </summary>
|
||||
[DataMember(Name="kind", EmitDefaultValue=false)]
|
||||
public KindEnum? Kind { get; set; }
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BigCatAllOf" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kind">kind.</param>
|
||||
public BigCatAllOf(KindEnum? kind = default(KindEnum?))
|
||||
{
|
||||
this.Kind = kind;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>String presentation of the object</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("class BigCatAllOf {\n");
|
||||
sb.Append(" Kind: ").Append(Kind).Append("\n");
|
||||
sb.Append("}\n");
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the JSON string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>JSON string presentation of the object</returns>
|
||||
public virtual string ToJson()
|
||||
{
|
||||
return JsonConvert.SerializeObject(this, Formatting.Indented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if objects are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Object to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public override bool Equals(object input)
|
||||
{
|
||||
return this.Equals(input as BigCatAllOf);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if BigCatAllOf instances are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Instance of BigCatAllOf to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public bool Equals(BigCatAllOf input)
|
||||
{
|
||||
if (input == null)
|
||||
return false;
|
||||
|
||||
return
|
||||
(
|
||||
this.Kind == input.Kind ||
|
||||
(this.Kind != null &&
|
||||
this.Kind.Equals(input.Kind))
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the hash code
|
||||
/// </summary>
|
||||
/// <returns>Hash code</returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
unchecked // Overflow is fine, just wrap
|
||||
{
|
||||
int hashCode = 41;
|
||||
if (this.Kind != null)
|
||||
hashCode = hashCode * 59 + this.Kind.GetHashCode();
|
||||
return hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To validate all properties of the instance
|
||||
/// </summary>
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -122,6 +122,16 @@ namespace Org.OpenAPITools.Model
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
|
||||
{
|
||||
return this.BaseValidate(validationContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To validate all properties of the instance
|
||||
/// </summary>
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
protected IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> BaseValidate(ValidationContext validationContext)
|
||||
{
|
||||
foreach(var x in base.BaseValidate(validationContext)) yield return x;
|
||||
yield break;
|
||||
|
||||
Reference in New Issue
Block a user