@@ -228,4 +228,166 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
228
228
}
229
229
230
230
{ {/oneOf} }
231
+
232
+ { {#supportUrlQuery} }
233
+
234
+ /**
235
+ * Convert the instance into URL query string.
236
+ *
237
+ * @return URL query string
238
+ */
239
+ public String toUrlQueryString() {
240
+ return toUrlQueryString(null);
241
+ }
242
+
243
+ /**
244
+ * Convert the instance into URL query string.
245
+ *
246
+ * @param prefix prefix of the query string
247
+ * @return URL query string
248
+ */
249
+ public String toUrlQueryString(String prefix) {
250
+ String suffix = " " ;
251
+ String containerSuffix = " " ;
252
+ String containerPrefix = " " ;
253
+ if (prefix == null) {
254
+ // style= form, explode= true , e.g. /pet?name= cat&type= manx
255
+ prefix = " " ;
256
+ } else {
257
+ // deepObject style e.g. /pet?id[name]=cat&id[type]=manx
258
+ prefix = prefix + " [" ;
259
+ suffix = " ]" ;
260
+ containerSuffix = " ]" ;
261
+ containerPrefix = " [" ;
262
+ }
263
+
264
+ StringJoiner joiner = new StringJoiner("& ");
265
+
266
+ { {#composedSchemas.oneOf} }
267
+ if (getActualInstance() instanceof { {{dataType} }}) {
268
+ {{#isArray} }
269
+ { {#items.isPrimitiveType} }
270
+ { {#uniqueItems} }
271
+ if (getActualInstance() != null) {
272
+ int i = 0;
273
+ for ({{items.dataType} } _item : ({ {{dataType} }})getActualInstance()) {
274
+ joiner.add(String.format(" %s{{baseName}}%s%s=%s" , prefix, suffix,
275
+ " " .equals(suffix) ? " " : String.format(" %s%d%s" , containerPrefix, i, containerSuffix),
276
+ URLEncoder.encode(String.valueOf(_item), StandardCharsets.UTF_8).replaceAll(" \\ +" , " %20" )));
277
+ }
278
+ i++;
279
+ }
280
+ { {/uniqueItems} }
281
+ { {^uniqueItems} }
282
+ if (getActualInstance() != null) {
283
+ for (int i = 0; i < (({{{dataType} }})getActualInstance()).size(); i++) {
284
+ joiner.add(String.format(" %s{{baseName}}%s%s=%s" , prefix, suffix,
285
+ " " .equals(suffix) ? " " : String.format(" %s%d%s" , containerPrefix, i, containerSuffix),
286
+ URLEncoder.encode(String.valueOf(getActualInstance().get(i)), StandardCharsets.UTF_8).replaceAll(" \\ +" , " %20" )));
287
+ }
288
+ }
289
+ { {/uniqueItems} }
290
+ { {/items.isPrimitiveType} }
291
+ { {^items.isPrimitiveType} }
292
+ { {#items.isModel} }
293
+ { {#uniqueItems} }
294
+ if (getActualInstance() != null) {
295
+ int i = 0;
296
+ for ({{items.dataType} } _item : ({ {{dataType} }})getActualInstance()) {
297
+ if ((({{{dataType} }})getActualInstance()).get(i) != null) {
298
+ joiner.add(_item.toUrlQueryString(String.format(" %s{{baseName}}%s%s" , prefix, suffix,
299
+ " " .equals(suffix) ? " " : String.format(" %s%d%s" , containerPrefix, i, containerSuffix))));
300
+ }
301
+ }
302
+ i++;
303
+ }
304
+ { {/uniqueItems} }
305
+ { {^uniqueItems} }
306
+ if (getActualInstance() != null) {
307
+ for (int i = 0; i < (({{{dataType} }})getActualInstance()).size(); i++) {
308
+ if ((({{{dataType} }})getActualInstance()).get(i) != null) {
309
+ joiner.add((({{{items.dataType} }})getActualInstance()).get(i).toUrlQueryString(String.format("%s{ {baseName} }%s%s", prefix, suffix,
310
+ "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix))));
311
+ }
312
+ }
313
+ }
314
+ { {/uniqueItems} }
315
+ { {/items.isModel} }
316
+ { {^items.isModel} }
317
+ { {#uniqueItems} }
318
+ if (getActualInstance() != null) {
319
+ int i = 0;
320
+ for ({{items.dataType} } _item : ({ {{dataType} }})getActualInstance()) {
321
+ if (_item != null) {
322
+ joiner.add(String.format(" %s{{baseName}}%s%s=%s" , prefix, suffix,
323
+ " " .equals(suffix) ? " " : String.format(" %s%d%s" , containerPrefix, i, containerSuffix)),
324
+ URLEncoder.encode(String.valueOf(_item), StandardCharsets.UTF_8).replaceAll(" \\ +" , " %20" ));
325
+ }
326
+ i++;
327
+ }
328
+ }
329
+ { {/uniqueItems} }
330
+ { {^uniqueItems} }
331
+ if (getActualInstance() != null) {
332
+ for (int i = 0; i < (({{{dataType} }})getActualInstance()).size(); i++) {
333
+ if (getActualInstance().get(i) != null) {
334
+ joiner.add(String.format(" %s{{baseName}}%s%s=%s" , prefix, suffix,
335
+ " " .equals(suffix) ? " " : String.format(" %s%d%s" , containerPrefix, i, containerSuffix),
336
+ URLEncoder.encode(String.valueOf((({{{dataType} }})getActualInstance()).get(i)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
337
+ }
338
+ }
339
+ }
340
+ { {/uniqueItems} }
341
+ { {/items.isModel} }
342
+ { {/items.isPrimitiveType} }
343
+ { {/isArray} }
344
+ { {^isArray} }
345
+ { {#isMap} }
346
+ { {#items.isPrimitiveType} }
347
+ if (getActualInstance() != null) {
348
+ for (String _key : (({{{dataType} }})getActualInstance()).keySet()) {
349
+ joiner.add(String.format(" %s{{baseName}}%s%s=%s" , prefix, suffix,
350
+ " " .equals(suffix) ? " " : String.format(" %s%d%s" , containerPrefix, _key, containerSuffix),
351
+ getActualInstance().get(_key), URLEncoder.encode(String.valueOf((({{{dataType} }})getActualInstance()).get(_key)), StandardCharsets.UTF_8).replaceAll("\\+", "%20")));
352
+ }
353
+ }
354
+ { {/items.isPrimitiveType} }
355
+ { {^items.isPrimitiveType} }
356
+ if (getActualInstance() != null) {
357
+ for (String _key : (({{{dataType} }})getActualInstance()).keySet()) {
358
+ if ((({{{dataType} }})getActualInstance()).get(_key) != null) {
359
+ joiner.add((({{{items.dataType} }})getActualInstance()).get(_key).toUrlQueryString(String.format("%s{ {baseName} }%s%s", prefix, suffix,
360
+ "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, _key, containerSuffix))));
361
+ }
362
+ }
363
+ }
364
+ { {/items.isPrimitiveType} }
365
+ { {/isMap} }
366
+ { {^isMap} }
367
+ { {#isPrimitiveType} }
368
+ if (getActualInstance() != null) {
369
+ joiner.add(String.format(" %s{{{baseName}}}%s=%s" , prefix, suffix, URLEncoder.encode(String.valueOf(getActualInstance()), StandardCharsets.UTF_8).replaceAll(" \\ +" , " %20" )));
370
+ }
371
+ { {/isPrimitiveType} }
372
+ { {^isPrimitiveType} }
373
+ { {#isModel} }
374
+ if (getActualInstance() != null) {
375
+ joiner.add((({{{dataType} }})getActualInstance()).toUrlQueryString(prefix + "{ {{baseName} }}" + suffix));
376
+ }
377
+ { {/isModel} }
378
+ { {^isModel} }
379
+ if (getActualInstance() != null) {
380
+ joiner.add(String.format(" %s{{{baseName}}}%s=%s" , prefix, suffix, URLEncoder.encode(String.valueOf(getActualInstance()), StandardCharsets.UTF_8).replaceAll(" \\ +" , " %20" )));
381
+ }
382
+ { {/isModel} }
383
+ { {/isPrimitiveType} }
384
+ { {/isMap} }
385
+ { {/isArray} }
386
+ return joiner.toString();
387
+ }
388
+ { {/composedSchemas.oneOf} }
389
+ return null;
390
+ }
391
+ { {/supportUrlQuery} }
392
+
231
393
}
0 commit comments