reset to nil, replace tab wtih space (#6352)

This commit is contained in:
William Cheng 2020-05-19 15:34:53 +08:00 committed by GitHub
parent f8a144bdc1
commit d92b8833b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 136 additions and 119 deletions

View File

@ -1,5 +1,5 @@
import ( import (
"fmt" "fmt"
) )
// {{{classname}}} {{#description}}{{{.}}}{{/description}}{{^description}}the model '{{{classname}}}'{{/description}} // {{{classname}}} {{#description}}{{{.}}}{{/description}}{{^description}}the model '{{{classname}}}'{{/description}}
@ -17,20 +17,20 @@ const (
) )
func (v *{{{classname}}}) UnmarshalJSON(src []byte) error { func (v *{{{classname}}}) UnmarshalJSON(src []byte) error {
var value {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}} var value {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}}
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := {{{classname}}}(value) enumTypeValue := {{{classname}}}(value)
for _, existing := range []{{classname}}{ {{#allowableValues}}{{#enumVars}}{{{value}}}, {{/enumVars}} {{/allowableValues}} } { for _, existing := range []{{classname}}{ {{#allowableValues}}{{#enumVars}}{{{value}}}, {{/enumVars}} {{/allowableValues}} } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid {{classname}}", *v) return fmt.Errorf("%+v is not a valid {{classname}}", *v)
} }
// Ptr returns reference to {{{name}}} value // Ptr returns reference to {{{name}}} value

View File

@ -8,7 +8,7 @@ type {{classname}} struct {
{{#oneOf}} {{#oneOf}}
// {{{.}}}As{{classname}} is a convenience function that returns {{{.}}} wrapped in {{classname}} // {{{.}}}As{{classname}} is a convenience function that returns {{{.}}} wrapped in {{classname}}
func {{{.}}}As{{classname}}(v *{{{.}}}) {{classname}} { func {{{.}}}As{{classname}}(v *{{{.}}}) {{classname}} {
return {{classname}}{ {{{.}}}: v} return {{classname}}{ {{{.}}}: v}
} }
{{/oneOf}} {{/oneOf}}
@ -40,6 +40,11 @@ func (dst *{{classname}}) UnmarshalJSON(data []byte) error {
{{/oneOf}} {{/oneOf}}
if match > 1 { // more than 1 match if match > 1 { // more than 1 match
// reset to nil
{{#oneOf}}
dst.{{{.}}} = nil
{{/oneOf}}
return fmt.Errorf("Data matches more than one schema in oneOf({{classname}})") return fmt.Errorf("Data matches more than one schema in oneOf({{classname}})")
} else if match == 1 { } else if match == 1 {
return nil // exactly one match return nil // exactly one match

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// EnumClass the model 'EnumClass' // EnumClass the model 'EnumClass'
@ -28,20 +28,20 @@ const (
) )
func (v *EnumClass) UnmarshalJSON(src []byte) error { func (v *EnumClass) UnmarshalJSON(src []byte) error {
var value string var value string
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := EnumClass(value) enumTypeValue := EnumClass(value)
for _, existing := range []EnumClass{ "_abc", "-efg", "(xyz)", } { for _, existing := range []EnumClass{ "_abc", "-efg", "(xyz)", } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid EnumClass", *v) return fmt.Errorf("%+v is not a valid EnumClass", *v)
} }
// Ptr returns reference to EnumClass value // Ptr returns reference to EnumClass value

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// OuterEnum the model 'OuterEnum' // OuterEnum the model 'OuterEnum'
@ -28,20 +28,20 @@ const (
) )
func (v *OuterEnum) UnmarshalJSON(src []byte) error { func (v *OuterEnum) UnmarshalJSON(src []byte) error {
var value string var value string
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := OuterEnum(value) enumTypeValue := OuterEnum(value)
for _, existing := range []OuterEnum{ "placed", "approved", "delivered", } { for _, existing := range []OuterEnum{ "placed", "approved", "delivered", } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid OuterEnum", *v) return fmt.Errorf("%+v is not a valid OuterEnum", *v)
} }
// Ptr returns reference to OuterEnum value // Ptr returns reference to OuterEnum value

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// EnumClass the model 'EnumClass' // EnumClass the model 'EnumClass'
@ -28,20 +28,20 @@ const (
) )
func (v *EnumClass) UnmarshalJSON(src []byte) error { func (v *EnumClass) UnmarshalJSON(src []byte) error {
var value string var value string
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := EnumClass(value) enumTypeValue := EnumClass(value)
for _, existing := range []EnumClass{ "_abc", "-efg", "(xyz)", } { for _, existing := range []EnumClass{ "_abc", "-efg", "(xyz)", } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid EnumClass", *v) return fmt.Errorf("%+v is not a valid EnumClass", *v)
} }
// Ptr returns reference to EnumClass value // Ptr returns reference to EnumClass value

View File

@ -22,12 +22,12 @@ type Fruit struct {
// AppleAsFruit is a convenience function that returns Apple wrapped in Fruit // AppleAsFruit is a convenience function that returns Apple wrapped in Fruit
func AppleAsFruit(v *Apple) Fruit { func AppleAsFruit(v *Apple) Fruit {
return Fruit{ Apple: v} return Fruit{ Apple: v}
} }
// BananaAsFruit is a convenience function that returns Banana wrapped in Fruit // BananaAsFruit is a convenience function that returns Banana wrapped in Fruit
func BananaAsFruit(v *Banana) Fruit { func BananaAsFruit(v *Banana) Fruit {
return Fruit{ Banana: v} return Fruit{ Banana: v}
} }
@ -62,6 +62,10 @@ func (dst *Fruit) UnmarshalJSON(data []byte) error {
} }
if match > 1 { // more than 1 match if match > 1 { // more than 1 match
// reset to nil
dst.Apple = nil
dst.Banana = nil
return fmt.Errorf("Data matches more than one schema in oneOf(Fruit)") return fmt.Errorf("Data matches more than one schema in oneOf(Fruit)")
} else if match == 1 { } else if match == 1 {
return nil // exactly one match return nil // exactly one match

View File

@ -22,12 +22,12 @@ type FruitReq struct {
// AppleReqAsFruitReq is a convenience function that returns AppleReq wrapped in FruitReq // AppleReqAsFruitReq is a convenience function that returns AppleReq wrapped in FruitReq
func AppleReqAsFruitReq(v *AppleReq) FruitReq { func AppleReqAsFruitReq(v *AppleReq) FruitReq {
return FruitReq{ AppleReq: v} return FruitReq{ AppleReq: v}
} }
// BananaReqAsFruitReq is a convenience function that returns BananaReq wrapped in FruitReq // BananaReqAsFruitReq is a convenience function that returns BananaReq wrapped in FruitReq
func BananaReqAsFruitReq(v *BananaReq) FruitReq { func BananaReqAsFruitReq(v *BananaReq) FruitReq {
return FruitReq{ BananaReq: v} return FruitReq{ BananaReq: v}
} }
@ -62,6 +62,10 @@ func (dst *FruitReq) UnmarshalJSON(data []byte) error {
} }
if match > 1 { // more than 1 match if match > 1 { // more than 1 match
// reset to nil
dst.AppleReq = nil
dst.BananaReq = nil
return fmt.Errorf("Data matches more than one schema in oneOf(FruitReq)") return fmt.Errorf("Data matches more than one schema in oneOf(FruitReq)")
} else if match == 1 { } else if match == 1 {
return nil // exactly one match return nil // exactly one match

View File

@ -22,12 +22,12 @@ type Mammal struct {
// WhaleAsMammal is a convenience function that returns Whale wrapped in Mammal // WhaleAsMammal is a convenience function that returns Whale wrapped in Mammal
func WhaleAsMammal(v *Whale) Mammal { func WhaleAsMammal(v *Whale) Mammal {
return Mammal{ Whale: v} return Mammal{ Whale: v}
} }
// ZebraAsMammal is a convenience function that returns Zebra wrapped in Mammal // ZebraAsMammal is a convenience function that returns Zebra wrapped in Mammal
func ZebraAsMammal(v *Zebra) Mammal { func ZebraAsMammal(v *Zebra) Mammal {
return Mammal{ Zebra: v} return Mammal{ Zebra: v}
} }
@ -62,6 +62,10 @@ func (dst *Mammal) UnmarshalJSON(data []byte) error {
} }
if match > 1 { // more than 1 match if match > 1 { // more than 1 match
// reset to nil
dst.Whale = nil
dst.Zebra = nil
return fmt.Errorf("Data matches more than one schema in oneOf(Mammal)") return fmt.Errorf("Data matches more than one schema in oneOf(Mammal)")
} else if match == 1 { } else if match == 1 {
return nil // exactly one match return nil // exactly one match

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// OuterEnum the model 'OuterEnum' // OuterEnum the model 'OuterEnum'
@ -28,20 +28,20 @@ const (
) )
func (v *OuterEnum) UnmarshalJSON(src []byte) error { func (v *OuterEnum) UnmarshalJSON(src []byte) error {
var value string var value string
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := OuterEnum(value) enumTypeValue := OuterEnum(value)
for _, existing := range []OuterEnum{ "placed", "approved", "delivered", } { for _, existing := range []OuterEnum{ "placed", "approved", "delivered", } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid OuterEnum", *v) return fmt.Errorf("%+v is not a valid OuterEnum", *v)
} }
// Ptr returns reference to OuterEnum value // Ptr returns reference to OuterEnum value

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// OuterEnumDefaultValue the model 'OuterEnumDefaultValue' // OuterEnumDefaultValue the model 'OuterEnumDefaultValue'
@ -28,20 +28,20 @@ const (
) )
func (v *OuterEnumDefaultValue) UnmarshalJSON(src []byte) error { func (v *OuterEnumDefaultValue) UnmarshalJSON(src []byte) error {
var value string var value string
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := OuterEnumDefaultValue(value) enumTypeValue := OuterEnumDefaultValue(value)
for _, existing := range []OuterEnumDefaultValue{ "placed", "approved", "delivered", } { for _, existing := range []OuterEnumDefaultValue{ "placed", "approved", "delivered", } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid OuterEnumDefaultValue", *v) return fmt.Errorf("%+v is not a valid OuterEnumDefaultValue", *v)
} }
// Ptr returns reference to OuterEnumDefaultValue value // Ptr returns reference to OuterEnumDefaultValue value

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// OuterEnumInteger the model 'OuterEnumInteger' // OuterEnumInteger the model 'OuterEnumInteger'
@ -28,20 +28,20 @@ const (
) )
func (v *OuterEnumInteger) UnmarshalJSON(src []byte) error { func (v *OuterEnumInteger) UnmarshalJSON(src []byte) error {
var value int32 var value int32
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := OuterEnumInteger(value) enumTypeValue := OuterEnumInteger(value)
for _, existing := range []OuterEnumInteger{ 0, 1, 2, } { for _, existing := range []OuterEnumInteger{ 0, 1, 2, } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid OuterEnumInteger", *v) return fmt.Errorf("%+v is not a valid OuterEnumInteger", *v)
} }
// Ptr returns reference to OuterEnumInteger value // Ptr returns reference to OuterEnumInteger value

View File

@ -14,7 +14,7 @@ import (
) )
import ( import (
"fmt" "fmt"
) )
// OuterEnumIntegerDefaultValue the model 'OuterEnumIntegerDefaultValue' // OuterEnumIntegerDefaultValue the model 'OuterEnumIntegerDefaultValue'
@ -28,20 +28,20 @@ const (
) )
func (v *OuterEnumIntegerDefaultValue) UnmarshalJSON(src []byte) error { func (v *OuterEnumIntegerDefaultValue) UnmarshalJSON(src []byte) error {
var value int32 var value int32
err := json.Unmarshal(src, &value) err := json.Unmarshal(src, &value)
if err != nil { if err != nil {
return err return err
} }
enumTypeValue := OuterEnumIntegerDefaultValue(value) enumTypeValue := OuterEnumIntegerDefaultValue(value)
for _, existing := range []OuterEnumIntegerDefaultValue{ 0, 1, 2, } { for _, existing := range []OuterEnumIntegerDefaultValue{ 0, 1, 2, } {
if existing == enumTypeValue { if existing == enumTypeValue {
*v = enumTypeValue *v = enumTypeValue
return nil return nil
} }
} }
return fmt.Errorf("%+v is not a valid OuterEnumIntegerDefaultValue", *v) return fmt.Errorf("%+v is not a valid OuterEnumIntegerDefaultValue", *v)
} }
// Ptr returns reference to OuterEnumIntegerDefaultValue value // Ptr returns reference to OuterEnumIntegerDefaultValue value