forked from loafle/openapi-generator-original
[go] Add constructor and IsValid method to enum types (#8224)
* Add constructor and IsValid method to enum types * Add samples
This commit is contained in:
@@ -12,6 +12,14 @@ const (
|
||||
{{/allowableValues}}
|
||||
)
|
||||
|
||||
var allowed{{{classname}}}EnumValues = []{{{classname}}}{
|
||||
{{#allowableValues}}
|
||||
{{#enumVars}}
|
||||
{{{value}}},
|
||||
{{/enumVars}}
|
||||
{{/allowableValues}}
|
||||
}
|
||||
|
||||
func (v *{{{classname}}}) UnmarshalJSON(src []byte) error {
|
||||
var value {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}}
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -19,7 +27,7 @@ func (v *{{{classname}}}) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := {{{classname}}}(value)
|
||||
for _, existing := range []{{classname}}{ {{#allowableValues}}{{#enumVars}}{{{value}}}, {{/enumVars}} {{/allowableValues}} } {
|
||||
for _, existing := range allowed{{{classname}}}EnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -29,6 +37,27 @@ func (v *{{{classname}}}) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid {{classname}}", value)
|
||||
}
|
||||
|
||||
// New{{{classname}}}FromValue returns a pointer to a valid {{{classname}}}
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func New{{{classname}}}FromValue(v {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}}) (*{{{classname}}}, error) {
|
||||
ev := {{{classname}}}(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for {{{classname}}}: valid values are %v", v, allowed{{{classname}}}EnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v {{{classname}}}) IsValid() bool {
|
||||
for _, existing := range allowed{{{classname}}}EnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to {{{name}}} value
|
||||
func (v {{{classname}}}) Ptr() *{{{classname}}} {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
XYZ EnumClass = "(xyz)"
|
||||
)
|
||||
|
||||
var allowedEnumClassEnumValues = []EnumClass{
|
||||
"_abc",
|
||||
"-efg",
|
||||
"(xyz)",
|
||||
}
|
||||
|
||||
func (v *EnumClass) UnmarshalJSON(src []byte) error {
|
||||
var value string
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *EnumClass) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := EnumClass(value)
|
||||
for _, existing := range []EnumClass{ "_abc", "-efg", "(xyz)", } {
|
||||
for _, existing := range allowedEnumClassEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *EnumClass) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid EnumClass", value)
|
||||
}
|
||||
|
||||
// NewEnumClassFromValue returns a pointer to a valid EnumClass
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewEnumClassFromValue(v string) (*EnumClass, error) {
|
||||
ev := EnumClass(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for EnumClass: valid values are %v", v, allowedEnumClassEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v EnumClass) IsValid() bool {
|
||||
for _, existing := range allowedEnumClassEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to EnumClass value
|
||||
func (v EnumClass) Ptr() *EnumClass {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
DELIVERED OuterEnum = "delivered"
|
||||
)
|
||||
|
||||
var allowedOuterEnumEnumValues = []OuterEnum{
|
||||
"placed",
|
||||
"approved",
|
||||
"delivered",
|
||||
}
|
||||
|
||||
func (v *OuterEnum) UnmarshalJSON(src []byte) error {
|
||||
var value string
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *OuterEnum) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := OuterEnum(value)
|
||||
for _, existing := range []OuterEnum{ "placed", "approved", "delivered", } {
|
||||
for _, existing := range allowedOuterEnumEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *OuterEnum) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid OuterEnum", value)
|
||||
}
|
||||
|
||||
// NewOuterEnumFromValue returns a pointer to a valid OuterEnum
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewOuterEnumFromValue(v string) (*OuterEnum, error) {
|
||||
ev := OuterEnum(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for OuterEnum: valid values are %v", v, allowedOuterEnumEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v OuterEnum) IsValid() bool {
|
||||
for _, existing := range allowedOuterEnumEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to OuterEnum value
|
||||
func (v OuterEnum) Ptr() *OuterEnum {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
ENUMCLASS_XYZ EnumClass = "(xyz)"
|
||||
)
|
||||
|
||||
var allowedEnumClassEnumValues = []EnumClass{
|
||||
"_abc",
|
||||
"-efg",
|
||||
"(xyz)",
|
||||
}
|
||||
|
||||
func (v *EnumClass) UnmarshalJSON(src []byte) error {
|
||||
var value string
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *EnumClass) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := EnumClass(value)
|
||||
for _, existing := range []EnumClass{ "_abc", "-efg", "(xyz)", } {
|
||||
for _, existing := range allowedEnumClassEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *EnumClass) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid EnumClass", value)
|
||||
}
|
||||
|
||||
// NewEnumClassFromValue returns a pointer to a valid EnumClass
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewEnumClassFromValue(v string) (*EnumClass, error) {
|
||||
ev := EnumClass(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for EnumClass: valid values are %v", v, allowedEnumClassEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v EnumClass) IsValid() bool {
|
||||
for _, existing := range allowedEnumClassEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to EnumClass value
|
||||
func (v EnumClass) Ptr() *EnumClass {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
OUTERENUM_DELIVERED OuterEnum = "delivered"
|
||||
)
|
||||
|
||||
var allowedOuterEnumEnumValues = []OuterEnum{
|
||||
"placed",
|
||||
"approved",
|
||||
"delivered",
|
||||
}
|
||||
|
||||
func (v *OuterEnum) UnmarshalJSON(src []byte) error {
|
||||
var value string
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *OuterEnum) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := OuterEnum(value)
|
||||
for _, existing := range []OuterEnum{ "placed", "approved", "delivered", } {
|
||||
for _, existing := range allowedOuterEnumEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *OuterEnum) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid OuterEnum", value)
|
||||
}
|
||||
|
||||
// NewOuterEnumFromValue returns a pointer to a valid OuterEnum
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewOuterEnumFromValue(v string) (*OuterEnum, error) {
|
||||
ev := OuterEnum(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for OuterEnum: valid values are %v", v, allowedOuterEnumEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v OuterEnum) IsValid() bool {
|
||||
for _, existing := range allowedOuterEnumEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to OuterEnum value
|
||||
func (v OuterEnum) Ptr() *OuterEnum {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
OUTERENUMDEFAULTVALUE_DELIVERED OuterEnumDefaultValue = "delivered"
|
||||
)
|
||||
|
||||
var allowedOuterEnumDefaultValueEnumValues = []OuterEnumDefaultValue{
|
||||
"placed",
|
||||
"approved",
|
||||
"delivered",
|
||||
}
|
||||
|
||||
func (v *OuterEnumDefaultValue) UnmarshalJSON(src []byte) error {
|
||||
var value string
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *OuterEnumDefaultValue) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := OuterEnumDefaultValue(value)
|
||||
for _, existing := range []OuterEnumDefaultValue{ "placed", "approved", "delivered", } {
|
||||
for _, existing := range allowedOuterEnumDefaultValueEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *OuterEnumDefaultValue) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid OuterEnumDefaultValue", value)
|
||||
}
|
||||
|
||||
// NewOuterEnumDefaultValueFromValue returns a pointer to a valid OuterEnumDefaultValue
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewOuterEnumDefaultValueFromValue(v string) (*OuterEnumDefaultValue, error) {
|
||||
ev := OuterEnumDefaultValue(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for OuterEnumDefaultValue: valid values are %v", v, allowedOuterEnumDefaultValueEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v OuterEnumDefaultValue) IsValid() bool {
|
||||
for _, existing := range allowedOuterEnumDefaultValueEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to OuterEnumDefaultValue value
|
||||
func (v OuterEnumDefaultValue) Ptr() *OuterEnumDefaultValue {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
OUTERENUMINTEGER__2 OuterEnumInteger = 2
|
||||
)
|
||||
|
||||
var allowedOuterEnumIntegerEnumValues = []OuterEnumInteger{
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
}
|
||||
|
||||
func (v *OuterEnumInteger) UnmarshalJSON(src []byte) error {
|
||||
var value int32
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *OuterEnumInteger) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := OuterEnumInteger(value)
|
||||
for _, existing := range []OuterEnumInteger{ 0, 1, 2, } {
|
||||
for _, existing := range allowedOuterEnumIntegerEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *OuterEnumInteger) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid OuterEnumInteger", value)
|
||||
}
|
||||
|
||||
// NewOuterEnumIntegerFromValue returns a pointer to a valid OuterEnumInteger
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewOuterEnumIntegerFromValue(v int32) (*OuterEnumInteger, error) {
|
||||
ev := OuterEnumInteger(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for OuterEnumInteger: valid values are %v", v, allowedOuterEnumIntegerEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v OuterEnumInteger) IsValid() bool {
|
||||
for _, existing := range allowedOuterEnumIntegerEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to OuterEnumInteger value
|
||||
func (v OuterEnumInteger) Ptr() *OuterEnumInteger {
|
||||
return &v
|
||||
|
||||
@@ -25,6 +25,12 @@ const (
|
||||
OUTERENUMINTEGERDEFAULTVALUE__2 OuterEnumIntegerDefaultValue = 2
|
||||
)
|
||||
|
||||
var allowedOuterEnumIntegerDefaultValueEnumValues = []OuterEnumIntegerDefaultValue{
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
}
|
||||
|
||||
func (v *OuterEnumIntegerDefaultValue) UnmarshalJSON(src []byte) error {
|
||||
var value int32
|
||||
err := json.Unmarshal(src, &value)
|
||||
@@ -32,7 +38,7 @@ func (v *OuterEnumIntegerDefaultValue) UnmarshalJSON(src []byte) error {
|
||||
return err
|
||||
}
|
||||
enumTypeValue := OuterEnumIntegerDefaultValue(value)
|
||||
for _, existing := range []OuterEnumIntegerDefaultValue{ 0, 1, 2, } {
|
||||
for _, existing := range allowedOuterEnumIntegerDefaultValueEnumValues {
|
||||
if existing == enumTypeValue {
|
||||
*v = enumTypeValue
|
||||
return nil
|
||||
@@ -42,6 +48,27 @@ func (v *OuterEnumIntegerDefaultValue) UnmarshalJSON(src []byte) error {
|
||||
return fmt.Errorf("%+v is not a valid OuterEnumIntegerDefaultValue", value)
|
||||
}
|
||||
|
||||
// NewOuterEnumIntegerDefaultValueFromValue returns a pointer to a valid OuterEnumIntegerDefaultValue
|
||||
// for the value passed as argument, or an error if the value passed is not allowed by the enum
|
||||
func NewOuterEnumIntegerDefaultValueFromValue(v int32) (*OuterEnumIntegerDefaultValue, error) {
|
||||
ev := OuterEnumIntegerDefaultValue(v)
|
||||
if ev.IsValid() {
|
||||
return &ev, nil
|
||||
} else {
|
||||
return nil, fmt.Errorf("invalid value '%v' for OuterEnumIntegerDefaultValue: valid values are %v", v, allowedOuterEnumIntegerDefaultValueEnumValues)
|
||||
}
|
||||
}
|
||||
|
||||
// IsValid return true if the value is valid for the enum, false otherwise
|
||||
func (v OuterEnumIntegerDefaultValue) IsValid() bool {
|
||||
for _, existing := range allowedOuterEnumIntegerDefaultValueEnumValues {
|
||||
if existing == v {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Ptr returns reference to OuterEnumIntegerDefaultValue value
|
||||
func (v OuterEnumIntegerDefaultValue) Ptr() *OuterEnumIntegerDefaultValue {
|
||||
return &v
|
||||
|
||||
Reference in New Issue
Block a user