@@ -117,34 +117,36 @@ public static ${enumName} valueOfLabel(String label) {
117
117
. withBlock ( enumBlock ) . string ;
118
118
}
119
119
120
- protected resolveInputFieldType ( typeNode : TypeNode ) : { baseType : string ; typeName : string ; isScalar : boolean ; isArray : boolean } {
120
+ protected resolveInputFieldType ( typeNode : TypeNode ) : { baseType : string ; typeName : string ; isScalar : boolean ; isArray : boolean ; isEnum : boolean } {
121
121
const innerType = getBaseTypeNode ( typeNode ) ;
122
122
const schemaType = this . _schema . getType ( innerType . name . value ) ;
123
123
const isArray = typeNode . kind === Kind . LIST_TYPE || ( typeNode . kind === Kind . NON_NULL_TYPE && typeNode . type . kind === Kind . LIST_TYPE ) ;
124
- let result : { baseType : string ; typeName : string ; isScalar : boolean ; isArray : boolean } = null ;
124
+ let result : { baseType : string ; typeName : string ; isScalar : boolean ; isArray : boolean ; isEnum : boolean } = null ;
125
125
126
126
if ( isScalarType ( schemaType ) ) {
127
127
if ( this . scalars [ schemaType . name ] ) {
128
128
result = {
129
129
baseType : this . scalars [ schemaType . name ] ,
130
130
typeName : this . scalars [ schemaType . name ] ,
131
131
isScalar : true ,
132
+ isEnum : false ,
132
133
isArray,
133
134
} ;
134
135
} else {
135
- result = { isArray, baseType : 'Object' , typeName : 'Object' , isScalar : true } ;
136
+ result = { isArray, baseType : 'Object' , typeName : 'Object' , isScalar : true , isEnum : false } ;
136
137
}
137
138
} else if ( isInputObjectType ( schemaType ) ) {
138
139
result = {
139
140
baseType : `${ this . convertName ( schemaType . name ) } Input` ,
140
141
typeName : `${ this . convertName ( schemaType . name ) } Input` ,
141
142
isScalar : false ,
143
+ isEnum : false ,
142
144
isArray,
143
145
} ;
144
146
} else if ( isEnumType ( schemaType ) ) {
145
- result = { isArray, baseType : this . convertName ( schemaType . name ) , typeName : this . convertName ( schemaType . name ) , isScalar : true } ;
147
+ result = { isArray, baseType : this . convertName ( schemaType . name ) , typeName : this . convertName ( schemaType . name ) , isScalar : false , isEnum : true } ;
146
148
} else {
147
- result = { isArray, baseType : 'Object' , typeName : 'Object' , isScalar : true } ;
149
+ result = { isArray, baseType : 'Object' , typeName : 'Object' , isScalar : true , isEnum : false } ;
148
150
}
149
151
150
152
if ( result ) {
@@ -173,6 +175,15 @@ public static ${enumName} valueOfLabel(String label) {
173
175
return indent ( `this._${ arg . name . value } = ((List<Map<String, Object>>) args.get("${ arg . name . value } ")).stream().map(${ typeToUse . baseType } ::new).collect(Collectors.toList());` , 3 ) ;
174
176
} else if ( typeToUse . isScalar ) {
175
177
return indent ( `this._${ arg . name . value } = (${ typeToUse . typeName } ) args.get("${ arg . name . value } ");` , 3 ) ;
178
+ } else if ( typeToUse . isEnum ) {
179
+ return indentMultiline (
180
+ `if (args.get("${ arg . name . value } ") instanceof ${ typeToUse . typeName } ) {
181
+ this._${ arg . name . value } = (${ typeToUse . typeName } ) args.get("${ arg . name . value } ");
182
+ } else {
183
+ this._${ arg . name . value } = ${ typeToUse . typeName } .valueOfLabel(args.get("${ arg . name . value } "));
184
+ }` ,
185
+ 3
186
+ ) ;
176
187
} else {
177
188
return indent ( `this._${ arg . name . value } = new ${ typeToUse . typeName } ((Map<String, Object>) args.get("${ arg . name . value } "));` , 3 ) ;
178
189
}
0 commit comments