Skip to content

Commit b689b63

Browse files
committed
template
1 parent 2d1df79 commit b689b63

1 file changed

Lines changed: 76 additions & 4 deletions

File tree

modules/openapi-generator/src/main/resources/dart2/serialization/native/native_class.mustache

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,19 @@ class {{{classname}}} {
195195
{{#complexType}}
196196
{{#isArray}}
197197
{{#items.isArray}}
198+
{{#vendorExtensions.x-is-optional}}
199+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(json[r'{{{baseName}}}'] is List
200+
? (json[r'{{{baseName}}}'] as List).map((e) =>
201+
{{#items.complexType}}
202+
e == null ? {{#items.isNullable}}null{{/items.isNullable}}{{^items.isNullable}}const <{{items.complexType}}>[]{{/items.isNullable}} : {{items.complexType}}.listFromJson(e){{#uniqueItems}}.toSet(){{/uniqueItems}}
203+
{{/items.complexType}}
204+
{{^items.complexType}}
205+
e == null ? {{#items.isNullable}}null{{/items.isNullable}}{{^items.isNullable}}const <{{items.items.dataType}}{{#items.items.isNullable}}?{{/items.items.isNullable}}>[]{{/items.isNullable}} : (e as List).map((value) => value as {{items.items.dataType}}{{#items.items.isNullable}}?{{/items.items.isNullable}}).toList(growable: false)
206+
{{/items.complexType}}
207+
).toList()
208+
: {{#isNullable}}null{{/isNullable}}{{^isNullable}}const []{{/isNullable}}) : const Optional.absent(),
209+
{{/vendorExtensions.x-is-optional}}
210+
{{^vendorExtensions.x-is-optional}}
198211
{{{name}}}: json[r'{{{baseName}}}'] is List
199212
? (json[r'{{{baseName}}}'] as List).map((e) =>
200213
{{#items.complexType}}
@@ -205,38 +218,75 @@ class {{{classname}}} {
205218
{{/items.complexType}}
206219
).toList()
207220
: {{#isNullable}}null{{/isNullable}}{{^isNullable}}const []{{/isNullable}},
221+
{{/vendorExtensions.x-is-optional}}
208222
{{/items.isArray}}
209223
{{^items.isArray}}
224+
{{#vendorExtensions.x-is-optional}}
225+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present({{{complexType}}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}}) : const Optional.absent(),
226+
{{/vendorExtensions.x-is-optional}}
227+
{{^vendorExtensions.x-is-optional}}
210228
{{{name}}}: {{{complexType}}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}},
229+
{{/vendorExtensions.x-is-optional}}
211230
{{/items.isArray}}
212231
{{/isArray}}
213232
{{^isArray}}
214233
{{#isMap}}
215234
{{#items.isArray}}
235+
{{#vendorExtensions.x-is-optional}}
236+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(json[r'{{{baseName}}}'] == null ? null
237+
{{#items.complexType}}
238+
: {{items.complexType}}.mapListFromJson(json[r'{{{baseName}}}'])) : const Optional.absent(),
239+
{{/items.complexType}}
240+
{{^items.complexType}}
241+
: (json[r'{{{baseName}}}'] as Map<String, dynamic>).map((k, v) => MapEntry(k, v == null ? {{#items.isNullable}}null{{/items.isNullable}}{{^items.isNullable}}const <{{items.items.dataType}}{{#items.items.isNullable}}?{{/items.items.isNullable}}>[]{{/items.isNullable}} : (v as List).map((value) => value as {{items.items.dataType}}{{#items.items.isNullable}}?{{/items.items.isNullable}}).toList(growable: false)))) : const Optional.absent(),
242+
{{/items.complexType}}
243+
{{/vendorExtensions.x-is-optional}}
244+
{{^vendorExtensions.x-is-optional}}
216245
{{{name}}}: json[r'{{{baseName}}}'] == null
217246
? {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}
218-
{{#items.complexType}}
247+
{{#items.complexType}}
219248
: {{items.complexType}}.mapListFromJson(json[r'{{{baseName}}}']),
220-
{{/items.complexType}}
221-
{{^items.complexType}}
249+
{{/items.complexType}}
250+
{{^items.complexType}}
222251
: (json[r'{{{baseName}}}'] as Map<String, dynamic>).map((k, v) => MapEntry(k, v == null ? {{#items.isNullable}}null{{/items.isNullable}}{{^items.isNullable}}const <{{items.items.dataType}}{{#items.items.isNullable}}?{{/items.items.isNullable}}>[]{{/items.isNullable}} : (v as List).map((value) => value as {{items.items.dataType}}{{#items.items.isNullable}}?{{/items.items.isNullable}}).toList(growable: false))),
223-
{{/items.complexType}}
252+
{{/items.complexType}}
253+
{{/vendorExtensions.x-is-optional}}
224254
{{/items.isArray}}
225255
{{^items.isArray}}
226256
{{#items.isMap}}
227257
{{#items.complexType}}
258+
{{#vendorExtensions.x-is-optional}}
259+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present({{items.complexType}}.mapFromJson(json[r'{{{baseName}}}'])) : const Optional.absent(),
260+
{{/vendorExtensions.x-is-optional}}
261+
{{^vendorExtensions.x-is-optional}}
228262
{{{name}}}: {{items.complexType}}.mapFromJson(json[r'{{{baseName}}}']),
263+
{{/vendorExtensions.x-is-optional}}
229264
{{/items.complexType}}
230265
{{^items.complexType}}
266+
{{#vendorExtensions.x-is-optional}}
267+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(mapCastOfType<String, dynamic>(json, r'{{{baseName}}}')) : const Optional.absent(),
268+
{{/vendorExtensions.x-is-optional}}
269+
{{^vendorExtensions.x-is-optional}}
231270
{{{name}}}: mapCastOfType<String, dynamic>(json, r'{{{baseName}}}'){{#required}}{{^isNullable}}!{{/isNullable}}{{/required}}{{^required}}{{#defaultValue}} ?? {{{.}}}{{/defaultValue}}{{/required}},
271+
{{/vendorExtensions.x-is-optional}}
232272
{{/items.complexType}}
233273
{{/items.isMap}}
234274
{{^items.isMap}}
235275
{{#items.complexType}}
276+
{{#vendorExtensions.x-is-optional}}
277+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present({{{items.complexType}}}.mapFromJson(json[r'{{{baseName}}}'])) : const Optional.absent(),
278+
{{/vendorExtensions.x-is-optional}}
279+
{{^vendorExtensions.x-is-optional}}
236280
{{{name}}}: {{{items.complexType}}}.mapFromJson(json[r'{{{baseName}}}']),
281+
{{/vendorExtensions.x-is-optional}}
237282
{{/items.complexType}}
238283
{{^items.complexType}}
284+
{{#vendorExtensions.x-is-optional}}
285+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(mapCastOfType<String, {{items.dataType}}>(json, r'{{{baseName}}}')) : const Optional.absent(),
286+
{{/vendorExtensions.x-is-optional}}
287+
{{^vendorExtensions.x-is-optional}}
239288
{{{name}}}: mapCastOfType<String, {{items.dataType}}>(json, r'{{{baseName}}}'){{#required}}{{^isNullable}}!{{/isNullable}}{{/required}}{{^required}}{{#defaultValue}} ?? {{{.}}}{{/defaultValue}}{{/required}},
289+
{{/vendorExtensions.x-is-optional}}
240290
{{/items.complexType}}
241291
{{/items.isMap}}
242292
{{/items.isArray}}
@@ -259,23 +309,45 @@ class {{{classname}}} {
259309
{{^complexType}}
260310
{{#isArray}}
261311
{{#isEnum}}
312+
{{#vendorExtensions.x-is-optional}}
313+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present({{{items.datatypeWithEnum}}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}}) : const Optional.absent(),
314+
{{/vendorExtensions.x-is-optional}}
315+
{{^vendorExtensions.x-is-optional}}
262316
{{{name}}}: {{{items.datatypeWithEnum}}}.listFromJson(json[r'{{{baseName}}}']){{#uniqueItems}}.toSet(){{/uniqueItems}},
317+
{{/vendorExtensions.x-is-optional}}
263318
{{/isEnum}}
264319
{{^isEnum}}
320+
{{#vendorExtensions.x-is-optional}}
321+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(json[r'{{{baseName}}}'] is Iterable
322+
? (json[r'{{{baseName}}}'] as Iterable).cast<{{{items.datatype}}}>().{{#uniqueItems}}toSet(){{/uniqueItems}}{{^uniqueItems}}toList(growable: false){{/uniqueItems}}
323+
: {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}const []{{/defaultValue}}) : const Optional.absent(),
324+
{{/vendorExtensions.x-is-optional}}
325+
{{^vendorExtensions.x-is-optional}}
265326
{{{name}}}: json[r'{{{baseName}}}'] is Iterable
266327
? (json[r'{{{baseName}}}'] as Iterable).cast<{{{items.datatype}}}>().{{#uniqueItems}}toSet(){{/uniqueItems}}{{^uniqueItems}}toList(growable: false){{/uniqueItems}}
267328
: {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}},
329+
{{/vendorExtensions.x-is-optional}}
268330
{{/isEnum}}
269331
{{/isArray}}
270332
{{^isArray}}
271333
{{#isMap}}
334+
{{#vendorExtensions.x-is-optional}}
335+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(mapCastOfType<String, {{{items.datatype}}}>(json, r'{{{baseName}}}')) : const Optional.absent(),
336+
{{/vendorExtensions.x-is-optional}}
337+
{{^vendorExtensions.x-is-optional}}
272338
{{{name}}}: mapCastOfType<String, {{{items.datatype}}}>(json, r'{{{baseName}}}'){{#required}}{{^isNullable}}!{{/isNullable}}{{/required}}{{^required}}{{#defaultValue}} ?? {{{.}}}{{/defaultValue}}{{/required}},
339+
{{/vendorExtensions.x-is-optional}}
273340
{{/isMap}}
274341
{{^isMap}}
275342
{{#isNumber}}
343+
{{#vendorExtensions.x-is-optional}}
344+
{{{name}}}: json.containsKey(r'{{{baseName}}}') ? Optional.present(json[r'{{{baseName}}}'] == null ? null : num.parse('${json[r'{{{baseName}}}']}')) : const Optional.absent(),
345+
{{/vendorExtensions.x-is-optional}}
346+
{{^vendorExtensions.x-is-optional}}
276347
{{{name}}}: {{#isNullable}}json[r'{{{baseName}}}'] == null
277348
? {{#defaultValue}}{{{.}}}{{/defaultValue}}{{^defaultValue}}null{{/defaultValue}}
278349
: {{/isNullable}}{{{datatypeWithEnum}}}.parse('${json[r'{{{baseName}}}']}'),
350+
{{/vendorExtensions.x-is-optional}}
279351
{{/isNumber}}
280352
{{^isNumber}}
281353
{{#vendorExtensions.x-original-is-integer}}

0 commit comments

Comments
 (0)