package Ġcz . eman . swagger . codegen . generator . kotlin Ċ Ċ import Ġcom . google . common . collect . Immutable Map Ċ import Ġcom . s ams k iv ert . must ache . Must ache Ċ import Ġcz . eman . swagger . codegen . language . ARRAY _ AS _ ARRAY _ LIST Ċ import Ġcz . eman . swagger . codegen . language . ARRAY _ AS _ ARRAY _ LIST _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . COMP O SED _ ARRAY _ ANY Ċ import Ġcz . eman . swagger . codegen . language . COMP O SED _ ARRAY _ ANY _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . COMP O SED _ VARS _ NOT _ REQUIRED Ċ import Ġcz . eman . swagger . codegen . language . COMP O SED _ VARS _ NOT _ REQUIRED _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . EMPTY _ DATA _ CLASS Ċ import Ġcz . eman . swagger . codegen . language . EMPTY _ DATA _ CLASS _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . GENER ATE _ INFR A STRUCTURE _ API Ċ import Ġcz . eman . swagger . codegen . language . GENER ATE _ INFR A STRUCTURE _ API _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . GENER ATE _ PR IMIT IVE _ TYPE _ ALIAS Ċ import Ġcz . eman . swagger . codegen . language . GENER ATE _ PR IMIT IVE _ TYPE _ ALIAS _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . HEADER _ CLI Ċ import Ġcz . eman . swagger . codegen . language . HEADER _ CLI _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . REMOVE _ ENDPOINT _ START ING _ SL ASH Ċ import Ġcz . eman . swagger . codegen . language . REMOVE _ ENDPOINT _ START ING _ SL ASH _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . REMOVE _ MINUS _ TEXT _ FROM _ HEADER Ċ import Ġcz . eman . swagger . codegen . language . REMOVE _ MINUS _ TEXT _ FROM _ HEADER _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . language . REMOVE _ OPERATION _ PARAMS Ċ import Ġcz . eman . swagger . codegen . language . REMOVE _ OPERATION _ PARAMS _ DESCRIPTION Ċ import Ġcz . eman . swagger . codegen . temp lating . must ache . Ignore Starting Slash Lambda Ċ import Ġcz . eman . swagger . codegen . temp lating . must ache . Remove Minus Text FromName Lambda Ċ import Ġio . swagger . v 3 . o as . models . media . Array Schema Ċ import Ġio . swagger . v 3 . o as . models . media . Comp osed Schema Ċ import Ġio . swagger . v 3 . o as . models . media . Map Schema Ċ import Ġio . swagger . v 3 . o as . models . media . Object Schema Ċ import Ġio . swagger . v 3 . o as . models . media . Schema Ċ import Ġio . swagger . v 3 . o as . models . media . String Schema Ċ import Ġorg . open ap it ools . codegen . Cli Option Ċ import Ġorg . open ap it ools . codegen . Code gen Constants Ċ import Ġorg . open ap it ools . codegen . Code gen Model Ċ import Ġorg . open ap it ools . codegen . Code gen Operation Ċ import Ġorg . open ap it ools . codegen . Code gen Property Ċ import Ġorg . open ap it ools . codegen . Code gen Type Ċ import Ġorg . open ap it ools . codegen . Support ing File Ċ import Ġorg . open ap it ools . codegen . languages . Abstract Kotlin Code gen Ċ import Ġorg . open ap it ools . codegen . utils . Model Utils Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠKotlin Ġclient Ġgenerator Ġbased Ġon Ġ[ Abstract Kotlin Code gen ]. ĠContains Ġlibraries Ġand Ġoptions Ġthat Ġare Ġnot Ġsupported Ġin Ċ Ġ* Ġdefault ĠOpenAPI Ġgenerator Ġ( https :// github . com / Open API Tools / openapi - generator ). Ċ Ġ* Ċ Ġ* ĠSupported Ġlibraries : Ċ Ġ* Ġ- Ġ` Multi platform Ġ( multi platform )` Ġ- Ġgenerates Ġapi Ġcontaining Ġmulti platform Ġfunctions Ġand Ġrequired Ġmodel Ġclasses . Ċ Ġ* Ġ- Ġ` Ok http Ġ( jvm - okhttp )` Ġ- Ġgenerates Ġapi Ġcontaining Ġokhttp Ġfunctions Ġand Ġrequired Ġmodel Ġclasses . Ċ Ġ* Ġ- Ġ` Ret rofit 2 Ġ( jvm - ret rofit 2 )` Ġ- Ġgenerates Ġapi Ġcontaining Ġretrofit Ġfunctions Ġand Ġrequired Ġmodel Ġclasses . Ċ Ġ* Ġ- Ġ` Room Ġv 1 Ġ( room )` Ġ- Ġgenerated Ġmodel Ġclasses Ġsupporting ĠRoom Ġup Ġto Ġversion Ġ 1 . 1 . 1 . Ċ Ġ* Ġ- Ġ` Room Ġv 2 Ġ( room 2 )` Ġ- Ġgenerates Ġmodel Ġclasses Ġsupporting ĠRoom Ġfrom Ġversion Ġ 2 . 0 . 0 Ġ( android x ). Ċ Ġ* Ċ Ġ* ĠAdditional Ġgenerator Ġoptions : Ċ Ġ* Ġ- Ġ` date Library ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġset Ġdate Ġlibrary Ġused Ġto Ġserialize Ġdates Ġand Ġtimes . Ċ Ġ* Ġ- Ġ` generate Infrastructure ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġenable Ġto Ġgenerate ĠAPI Ġinfrastructure . Ċ Ġ* Ġ- Ġ` empty Data Classes ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġenable Ġempty Ġdata Ġclasses Ġbeing Ġgenerated . Ġ( Note : Ġit Ġshould Ġnot Ġpass ĠKotlin Ġcompilation .) Ċ Ġ* Ġ- Ġ` composed Array As Any ` Ġ- ĠBy Ġthis Ġproperty Ġarray Ġof Ġcomposed Ġis Ġchanged Ġto Ġarray Ġof Ġobject Ġ( kotlin . Any ). Ċ Ġ* Ġ- Ġ` generate Primitive Type Alias ` Ġ- ĠBy Ġthis Ġproperty Ġaliases Ġto Ġprimitive Ġare Ġalso Ġgenerated . Ċ Ġ* Ġ- Ġ` composed Vars Not Required ` Ġ- ĠBy Ġthis Ġproperty ĠComp osed Ġschemas Ġ( one Of , Ġany Of ) Ġwill Ġhave Ġall Ġvariables Ġas Ġnot Ġrequired Ġ( nullable ). Ċ Ġ* ĠĠĠ ĠCan Ġbe Ġused Ġfor Ġschema Ġthat Ġreferences Ġobject Ġthat Ġis Ġrequired Ġto Ġmark Ġit Ġas Ġnot Ġrequired . Ċ Ġ* Ġ- Ġ` remove Minus Text In Header Property ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġenable Ġto Ġgenerate Ġname Ġof Ġheader Ġproperty Ġwithout Ġtext Ġminus Ġif Ġit Ġis Ġpresent . Ċ Ġ* Ġ- Ġ` remove Operation Params ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġremove Ġspecific Ġparameters Ġfrom ĠAPI Ġoperations . Ċ Ġ* Ġ- Ġ` array As ArrayList ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġforce fully Ġrepresent ĠArray Ġas ĠArrayList Ġwhich Ġcan Ġbe Ġuseful Ġwith Ġcomplex Ġschemas . ĠUse Ġwith Ġca ution . Ċ Ġ* Ġ- Ġ` ignore Endpoint Starting Slash ` Ġ- ĠBy Ġthis Ġproperty Ġyou Ġcan Ġignore Ġa Ġstarting Ġslash Ġfrom Ġan Ġendpoint Ġdefinition Ġif Ġit Ġis Ġpresent . Ċ Ġ* Ċ Ġ* Ġ@ author Ġe Man Ġa . s . Ġ( info @ eman . cz ) Ċ Ġ* Ġ@ since Ġ 2 . 0 . 0 Ċ Ġ*/ Ċ open Ġclass ĠKotlin Client Code gen Ġ: Ġorg . open ap it ools . codegen . languages . Kotlin Client Code gen () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġempty Data Classes Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġcomposed Array As Any Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġgenerate Primitive Type Alias Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġcomposed Vars Not Required Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġarray As ArrayList Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġremove Operation Params : ĠList < String > Ġ= Ġempty List () ĊĠĠĠ Ġprivate Ġval Ġnumber DataTypes Ġ= ĊĠĠĠĠĠĠĠ ĠarrayOf (" kotlin . Short ", Ġ" kotlin . Int ", Ġ" kotlin . Long ", Ġ" kotlin . Float ", Ġ" kotlin . Double ") ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Kotlin Client Code gen :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRO OM Ġ= Ġ" room " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRO OM 2 Ġ= Ġ" room 2 " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠV ENDOR _ EXTENSION _ IS _ ALIAS Ġ= Ġ" x - is - alias " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE _ ARRAY _ LIST Ġ= Ġ" ArrayList " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠGenerate Api Type Ġconstructor ( val Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠIN FR A STRUCTURE (" infrastructure "), ĊĠĠĠĠĠĠĠ ĠAPI (" api ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠHeaders Commands Ġconstructor ( val Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠREMOVE _ MINUS _ WORD _ FROM _ PROPERTY ( REMOVE _ MINUS _ TEXT _ FROM _ HEADER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠEnd points Commands Ġconstructor ( val Ġvalue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠIN GO RE _ ENDPOINT _ START ING _ SL ASH ( REMOVE _ ENDPOINT _ START ING _ SL ASH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġan Ġinstance Ġof Ġ` Kotlin Client Code gen `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġenum Property Naming Ġ= ĠCode gen Constants . ENUM _ PROPERTY _ NAM ING _ TYPE . camel Case ĊĠĠĠĠĠĠĠ Ġinit Artifact () ĊĠĠĠĠĠĠĠ Ġinit Templates () ĊĠĠĠĠĠĠĠ Ġinit Settings () ĊĠĠĠĠĠĠĠ Ġinit Headers () ĊĠĠĠĠĠĠĠ Ġadd Libraries () ĊĠĠĠĠĠĠĠ Ġadd Reserved Words () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Must ache L amb das (): ĠImmutableMap . Builder < String , ĠMust ache . Lambda > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlamb das Ġ= Ġsuper . add Must ache L amb das () ĊĠĠĠĠĠĠĠ Ġlamb das . put ( Remove Minus Text FromName Lambda . L AMBDA _ NAME , ĠRemove Minus Text FromName Lambda ( this )) ĊĠĠĠĠĠĠĠ Ġlamb das . put ( Ignore Starting Slash Lambda . L AMBDA _ NAME , ĠIgnore Starting Slash Lambda ( this )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlamb das ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Library ( library : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . set Library ( library ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" Setting Ġlibrary : Ġ$ library ") ĊĠĠĠĠĠĠĠ Ġsupported Libraries . keys . forEach Ġ{ Ġadditional Properties [ it ] Ġ= Ġit Ġ== Ġlibrary Ġ} ĊĠĠĠĠĠĠĠ Ġinit Artifact () ĊĠĠĠĠĠĠĠ Ġinit Templates () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Tag (): ĠCode gen Type Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode gen Type . OTHER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" kotlin - client - v 2 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Help (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Gener ates Ġa ĠKotlin Ġclasses Ġfor Ġspecific Ġlibrary ." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Model Filename ( name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġto ModelName ( name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto ModelName ( name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== ĠTYPE _ ARRAY _ LIST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . to ModelName ( name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Api Name ( name : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . to Api Name ( name ) Ġ+ Ġapi Name Suffix ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro cesses Ġand Ġadds Ġgenerator Ġoptions . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġprocess Opts () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . process Opts () ĊĠĠĠĠĠĠĠ Ġprocess Opts Infrastructure () ĊĠĠĠĠĠĠĠ Ġprocess Opts Additional Support ing Files () ĊĠĠĠĠĠĠĠ Ġprocess Opts Additional () ĊĠĠĠĠĠĠĠ Ġapply Options () ĊĠĠĠĠĠĠĠ Ġprocess Opts For Multi platform () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMod ifies Ġschema Ġbefore Ġthe Ġactual Ġ[ from Model ] Ġfunction Ġis Ġcalled . ĠMod ifies Ġmodel Ġbased Ġon Ġ[ empty Data Classes ] Ġand ĊĠĠĠĠ Ġ* Ġ[ composed Array As Any ] Ġoptions . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfrom Model ( name : ĠString ?, Ġschema : ĠSchema < *> ?): ĠCode gen Model Ġ{ ĊĠĠĠĠĠĠĠ Ġempty Data Class AsString ( name , Ġschema ) ĊĠĠĠĠĠĠĠ Ġcomposed Array As Any ( name , Ġschema ) ĊĠĠĠĠĠĠĠ Ġfix Array Items Schema ( name , Ġschema ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Model Ġ= Ġsuper . from Model ( name , Ġschema ) ĊĠĠĠĠĠĠĠ Ġfix Type Alias DataType ( result Model , Ġschema ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Model ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMod ifies Ġproperty Ġbefore Ġactual Ġ[ from Property ] Ġfunction Ġis Ġcalled . ĠFixes Ġ[ Array Schema ] Ġitems Ġto Ġcontain Ġproper ĊĠĠĠĠ Ġ* Ġ[ Array Schema ] Ġor Ġ[ Map Schema ] Ġsince Ġit Ġlost Ġit 's Ġtype Ġand Ġgenerated Ġincorrect Ġdata Ġtype Ġfor Ġnested Ġarrays Ġand ĊĠĠĠĠ Ġ* Ġmaps . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfrom Property ( name : ĠString ?, Ġschema : ĠSchema < *> ?): ĠCode gen Property Ġ{ ĊĠĠĠĠĠĠĠ Ġfix Array Items Schema ( name , Ġschema ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . from Property ( name , Ġschema ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEnum Ġnumber Ġnames Ġare Ġunified Ġwith ĠJava Ġcode Ġgeneration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġto Enum Var Name ( value : ĠString ?, Ġdatatype : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġname Ġ= Ġsuper . to Enum Var Name ( value , Ġdatatype ) ĊĠĠĠĠĠĠĠ Ġif Ġ( datatype Ġin Ġnumber DataTypes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" NUMBER $ name " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname . replace ("- ". to Regex (), Ġ" MINUS _ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname . replace ("\\ +". to Regex (), Ġ" PLUS _ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname . replace ("\\ .". to Regex (), Ġ"_ DOT _ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPost Ġprocess Ġmodels Ġand Ġadds Ġvendor Ġextensions . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġpost Process Models ( objs : ĠMap < String ?, ĠAny ?> ): ĠMap < String ?, ĠAny ?> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġobjects Ġ= Ġsuper . post Process Models ( objs ) ĊĠĠĠĠĠĠĠ Ġval Ġmodels Ġ= Ġobjs [" models "] Ġas ĠList < *> ? Ġ?: Ġempty List < Any >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( model Ġin Ġmodels ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmo Ġ= Ġmodel Ġas ĠMap < *, Ġ*> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mo [" model "] Ġas ĠCode gen Model ?) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Model Vendor Extensions ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Comp osed Vars As Not Required ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġobjects ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPost Ġprocess Ġoperations Ġwith Ġmodels Ġto Ġcheck Ġif Ġthe Ġoperation Ġis Ġmultipart Ġor Ġnot . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġpost Process Operations With Models ( ĊĠĠĠĠĠĠĠ Ġobjs : ĠMutable Map < String ?, ĠAny ? >, ĊĠĠĠĠĠĠĠ Ġall Models : ĠList < Any ?> ? ĊĠĠĠ Ġ): ĠMap < String , ĠAny >? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . post Process Operations With Models ( objs , Ġall Models ) ĊĠĠĠĠĠĠĠ Ġval Ġoperations Ġ= Ġobjs [" operations "] Ġas ? ĠMap < String , ĠAny >? ĊĠĠĠĠĠĠĠ Ġif Ġ( operations Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( operations [" operation "] Ġas ĠList < *> ?) ?. forEach Ġ{ Ġoperation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( operation Ġis ĠCode gen Operation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Operation Params ( operation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( operation . has Cons umes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Multipart Type ( operation . consume s )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperation . is Multipart Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjs [" is Multipart "] Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmodify Ġthe Ġdata Ġtype Ġof Ġbinary Ġform Ġparameters Ġto Ġa Ġmore Ġfriendly Ġtype Ġfor Ġmulti platform Ġbuilds ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MULTI PLATFORM Ġ== Ġget Library () Ġ&& Ġoperation . all Params Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( param Ġin Ġoperation . all Params ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( param . data Format Ġ!= Ġnull Ġ&& Ġparam . data Format Ġ== Ġ" binary ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam . dataType Ġ= Ġ" io . ktor . client . request . forms . Input Provider " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam . base Type Ġ= Ġparam . dataType ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġoperations ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitializes Ġartifact Ġsettings Ġsuch Ġas Ġid , Ġoutput Ġfolder Ġor Ġpackage Ġname . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Artifact () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlibrary Artifact Ġ= Ġif Ġ( library Ġ!= Ġnull ) Ġ"- $ library " Ġelse Ġ"" ĊĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġ" kotlin ${ library Artifact }- client " ĊĠĠĠĠĠĠĠ ĠpackageName Ġ= Ġ" cz . eman . swagger " ĊĠĠĠĠĠĠĠ Ġapi Package Ġ= Ġ"$ packageName . api " ĊĠĠĠĠĠĠĠ Ġmodel Package Ġ= Ġ"$ packageName . model " ĊĠĠĠĠĠĠĠ Ġoutput Folder Ġ= Ġ" generated - code " Ġ+ ĠFile . separator Ġ+ Ġartifact Id ĊĊĠĠĠĠĠĠĠ Ġ// Ġcli Options Ġdefault Ġre definition Ġneed Ġto Ġbe Ġupdated ĊĠĠĠĠĠĠĠ Ġupdate Option ( Code gen Constants . AR TI FACT _ ID , Ġartifact Id ) ĊĠĠĠĠĠĠĠ Ġupdate Option ( Code gen Constants . PACKAGE _ NAME , ĠpackageName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitializes Ġtemplate Ġfiles Ġfor Ġgenerator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Templates () Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel Template Files [" model . must ache "] Ġ= Ġ". kt " ĊĠĠĠĠĠĠĠ Ġmodel Doc Template Files [" model _ doc . must ache "] Ġ= Ġ". md " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( library Ġ!= ĠRO OM Ġ&& Ġlibrary Ġ!= ĠRO OM 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Adding ĠAPI Ġtemplate Ġfiles ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Template Files [" api . must ache "] Ġ= Ġ". kt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Doc Template Files [" api _ doc . must ache "] Ġ= Ġ". md " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Removing ĠAPI Ġtemplate Ġfiles ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Template Files . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Doc Template Files . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġall Ġsettings Ġoptions Ġto Ġthis Ġgenerator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Settings Infrastructure () ĊĠĠĠĠĠĠĠ Ġinit Settings Empty Data Class () ĊĠĠĠĠĠĠĠ Ġinit Settings Comp osed Array Any () ĊĠĠĠĠĠĠĠ Ġinit Settings Generate Primitive Type Alias () ĊĠĠĠĠĠĠĠ Ġinit Settings Comp osed Vars Not Required () ĊĠĠĠĠĠĠĠ Ġinit Settings Remove Operation Params () ĊĠĠĠĠĠĠĠ Ġinit Settings Array As ArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġused Ġto Ġgenerate Ġapi Ġonly Ġor Ġapi Ġwith Ġinfrastructure . ĠOptions Ġare Ġ[ Generate Api Type . INFR A STRUCTURE ] Ġor ĊĠĠĠĠ Ġ* Ġ[ Generate Api Type . API ]. ĠDefault Ġis Ġ[ Generate Api Type . API ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Infrastructure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinfrastructure Cli Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option ( GENER ATE _ INFR A STRUCTURE _ API , ĠGENER ATE _ INFR A STRUCTURE _ API _ DESCRIPTION ) ĊĠĠĠĠĠĠĠ Ġval Ġinfra Options Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġinfra Options [ Generate Api Type . INFR A STRUCTURE . value ] Ġ= Ġ" Generate ĠInfrastructure ĠAPI " ĊĠĠĠĠĠĠĠ Ġinfra Options [ Generate Api Type . API . value ] Ġ= Ġ" Generate ĠAPI " ĊĠĠĠĠĠĠĠ Ġinfra Options [ Endpoints Commands . ING ORE _ ENDPOINT _ START ING _ SL ASH . value ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREMOVE _ ENDPOINT _ START ING _ SL ASH _ DESCRIPTION ĊĠĠĠĠĠĠĠ Ġinfrastructure Cli . enum Ġ= Ġinfra Options ĊĊĠĠĠĠĠĠĠ Ġcli Options . add ( infrastructure Cli ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġall Ġheaders Ġoptions Ġto Ġthis Ġgenerator ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Headers () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheaders Cli Ġ= ĠCli Option ( HEADER _ CLI , ĠHEADER _ CLI _ DESCRIPTION ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Options Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġheaders Options [ Headers Commands . REMOVE _ MINUS _ WORD _ FROM _ PROPERTY . value ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREMOVE _ MINUS _ TEXT _ FROM _ HEADER _ DESCRIPTION ĊĠĠĠĠĠĠĠ Ġheaders Cli . enum Ġ= Ġheaders Options ĊĠĠĠĠĠĠĠ Ġcli Options . add ( headers Cli ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġto Ġallow Ġempty Ġdata Ġclasses . ĠThese Ġare Ġnot Ġallowed Ġby Ġdefault Ġbecause Ġthey Ġdo Ġnot Ġpass ĊĠĠĠĠ Ġ* Ġkotlin Ġcompile . ĠAll Ġempty Ġdata Ġclasses Ġare Ġre - typed Ġto ĠString . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Empty Data Class () Ġ{ ĊĠĠĠĠĠĠĠ Ġcli Options . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option . new Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ DATA _ CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ DATA _ CLASS _ DESCRIPTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġto Ġcast Ġarray Ġof Ġcomposed Ġschema Ġ( Array < OneOf ... >) Ġto Ġarray Ġof Ġkotlin . Any Ġ( Array < kotlin . Any ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Comp osed Array Any () Ġ{ ĊĠĠĠĠĠĠĠ Ġcli Options . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option . new Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOMP O SED _ ARRAY _ ANY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOMP O SED _ ARRAY _ ANY _ DESCRIPTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġto Ġgenerate Ġtype Ġaliases Ġfor Ġprimitives . ĠDefault Ġcodegen Ġdoes Ġnot Ġgenerate Ġaliases Ġto Ġprimitives Ġand ĊĠĠĠĠ Ġ* Ġinstead Ġit Ġuses Ġthe Ġprimitives . ĠV iz : Ġhttps :// github . com / Open API Tools / openapi - generator / blob / master / modules / openapi - generator / src / main / java / org / open ap it ools / codegen / Default Generator . java # L 4 9 6 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Generate Primitive Type Alias () Ġ{ ĊĠĠĠĠĠĠĠ Ġcli Options . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option . new Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGENER ATE _ PR IMIT IVE _ TYPE _ ALIAS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGENER ATE _ PR IMIT IVE _ TYPE _ ALIAS _ DESCRIPTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġto Ġforce Ġvariables Ġof ĠComp osed Schema Ġ( one Of , Ġany Of ) Ġto Ġnot Ġbe Ġrequired . ĠWhen Ġset Ġto Ġtrue Ġall Ġvariables ĊĠĠĠĠ Ġ* Ġwill Ġbe Ġnullable Ġeven Ġif Ġthey Ġare Ġreferences Ġto Ġrequired Ġobjects . ĠDefault : Ġfalse . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Comp osed Vars Not Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġcli Options . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option . new Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOMP O SED _ VARS _ NOT _ REQUIRED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOMP O SED _ VARS _ NOT _ REQUIRED _ DESCRIPTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġused Ġto Ġto Ġremove Ġparameters Ġfrom Ġoperations . ĠValue Ġshould Ġan Ġarray / list Ġof Ġstrings . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Remove Operation Params () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremove Operation Params Cli Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option ( REMOVE _ OPERATION _ PARAMS , ĠREMOVE _ OPERATION _ PARAMS _ DESCRIPTION ) ĊĠĠĠĠĠĠĠ Ġcli Options . add ( remove Operation Params Cli ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSettings Ġused Ġto Ġto Ġrepresent Ġ[ Array ] Ġas Ġ[ ArrayList ] Ġwhich Ġcan Ġbe Ġuseful Ġwith Ġcomplex Ġschemes Ġlike Ġ[ Map ] ĊĠĠĠĠ Ġ* Ġcontained Ġin Ġ[ Array ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 3 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Settings Array As ArrayList () Ġ{ ĊĠĠĠĠĠĠĠ Ġcli Options . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option . new Boolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠARRAY _ AS _ ARRAY _ LIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠARRAY _ AS _ ARRAY _ LIST _ DESCRIPTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġadditional Ġlibraries Ġto Ġthis Ġgenerator : Ġ[ ROOM ] Ġand Ġ[ ROOM 2 ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Libraries () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupported Libraries [ ROOM ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Platform : ĠRoom Ġv 1 . ĠJSON Ġprocessing : ĠM oshi Ġ 1 . 1 2 . 0 ." ĊĠĠĠĠĠĠĠ Ġsupported Libraries [ ROOM 2 ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Platform : ĠRoom Ġv 2 Ġ( android x ). ĠJSON Ġprocessing : ĠM oshi Ġ 1 . 1 2 . 0 ." ĊĊĠĠĠĠĠĠĠ Ġval Ġlibrary Option Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCli Option ( Code gen Constants . LIBRARY , Ġ" Library Ġtemplate Ġ( sub - template ) Ġto Ġuse ") ĊĠĠĠĠĠĠĠ Ġlibrary Option . enum Ġ= Ġsupported Libraries ĊĠĠĠĠĠĠĠ Ġlibrary Option . default Ġ= ĠJVM _ RET RO FIT 2 ĊĠĠĠĠĠĠĠ Ġcli Options . add ( library Option ) ĊĠĠĠĠĠĠĠ Ġset Library ( JVM _ RET RO FIT 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġadditional Ġreserved Ġwords Ġinto Ġthe Ġgenerator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Reserved Words () Ġ{ ĊĠĠĠĠĠĠĠ Ġreserved Words . add (" internal ") ĊĠĠĠĠĠĠĠ Ġreserved Words . add (" external ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro cesses Ġoptions Ġfor Ġinfrastructure . ĠRemoves Ġall Ġsupporting Ġinfrastructure Ġfiles Ġfrom Ġthe Ġgeneration Ġis f Ġthis ĊĠĠĠĠ Ġ* Ġoption Ġis Ġset Ġto Ġfalse Ġ( do Ġnot Ġgenerate Ġinfrastructure ). ĠFor Ġmore Ġinformation Ġsee Ġ[ init Settings Infrastructure ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġprocess Opts Infrastructure () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġgenerate Infrastructure Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( GENER ATE _ INFR A STRUCTURE _ API )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Infrastructure Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Property To Boolean And Write Back ( GENER ATE _ INFR A STRUCTURE _ API ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! generate Infrastructure ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupporting Files . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġadditional Ġsupporting Ġfiles Ġlike ĠRead me , Ġbuild . gradle Ġor Ġsettings . gradle . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġprocess Opts Additional Support ing Files () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupporting Files . add ( Support ing File (" README . must ache ", Ġ"", Ġ" README . md ")) ĊĠĠĠĠĠĠĠ Ġsupporting Files . add ( Support ing File (" build . gradle . must ache ", Ġ"", Ġ" build . gradle ")) ĊĠĠĠĠĠĠĠ Ġsupporting Files . add ( Support ing File (" settings . gradle . must ache ", Ġ"", Ġ" settings . gradle ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro cesses Ġoptions Ġfor Ġadditional Ġsettings : ĊĠĠĠĠ Ġ* Ġ- ĠEmpty Ġdata Ġclass : Ġallows Ġgenerating Ġempty Ġdata Ġclasses . ĠFor Ġmore Ġinformation Ġsee Ġ[ init Settings Empty Data Class ]. ĊĠĠĠĠ Ġ* Ġ- ĠComp osed Ġarray Ġas Ġany : Ġtransforms Ġarray Ġof Ġcomposed Ġto Ġarray Ġor Ġkotlin . Any . ĠFor Ġmore Ġinformation Ġsee Ġ[ init Settings Comp osed Array Any ]. ĊĠĠĠĠ Ġ* Ġ- ĠGenerate Ġprimitive Ġtype Ġalias : Ġgenerates Ġalias Ġfor Ġprimitive Ġobjects . ĠFor Ġmore Ġinformation Ġsee Ġ[ init Settings Generate Primitive Type Alias ]. ĊĠĠĠĠ Ġ* Ġ- ĠComp osed Ġvars Ġnot Ġrequired : ĠFor ces Ġvars Ġto Ġbe Ġnullable . ĠFor Ġmore Ġinformation Ġsee Ġ[ init Settings Comp osed Vars Not Required ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġprocess Opts Additional () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( EMPTY _ DATA _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Data Classes Ġ= Ġconvert Property To Boolean And Write Back ( EMPTY _ DATA _ CLASS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( COMP O SED _ ARRAY _ ANY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomposed Array As Any Ġ= Ġconvert Property To Boolean And Write Back ( COMP O SED _ ARRAY _ ANY ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( GENER ATE _ PR IMIT IVE _ TYPE _ ALIAS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Primitive Type Alias Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Property To Boolean And Write Back ( GENER ATE _ PR IMIT IVE _ TYPE _ ALIAS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( COMP O SED _ VARS _ NOT _ REQUIRED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomposed Vars Not Required Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvert Property To Boolean And Write Back ( COMP O SED _ VARS _ NOT _ REQUIRED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( Code gen Constants . MODEL _ NAME _ SUFFIX )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ModelName Suffix ( additional Properties [ Code gen Constants . MODEL _ NAME _ SUFFIX ] Ġas ĠString ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( REMOVE _ OPERATION _ PARAMS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Operation Params Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġtemp Array Ġ= Ġadditional Properties [ REMOVE _ OPERATION _ PARAMS ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArray < *> Ġ-> Ġtemp Array . map NotNull Ġ{ Ġmap Any ToString OrNull ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList < *> Ġ-> Ġtemp Array . map NotNull Ġ{ Ġmap Any ToString OrNull ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( additional Properties . containsKey ( ARRAY _ AS _ ARRAY _ LIST )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray As ArrayList Ġ= Ġconvert Property To Boolean And Write Back ( ARRAY _ AS _ ARRAY _ LIST ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPro cesses Ġoptions Ġfor Ġthe ĠKotlin Ġmulti platform Ġdevelopment . ĠIt Ġwill Ġapply Ġand Ġmulti platform Ġspecific Ġopts Ġonly ĊĠĠĠĠ Ġ* Ġif : ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġset Library (" multi platform ") ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 2 . 4 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġprocess Opts For Multi platform () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( MULTI PLATFORM Ġ== Ġget Library ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Kotlin x DateTime Library () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Kotlin x DateTime Library () Ġ{ ĊĠĠĠĠĠĠĠ Ġadditional Properties [ Date Library . JAVA 8 . value ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadditional Properties [ Date Library . JAVA 8 _ LOCAL DATETIME . value ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadditional Properties [ Date Library . STRING . value ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadditional Properties [ Date Library . TH RE ET EN BP . value ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadditional Properties [ Date Library . TH RE ET EN BP _ LOCAL DATETIME . value ] Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġtype Mapping [" local - date - time "] Ġ= Ġ" kotlin x . datetime . LocalDateTime " ĊĠĠĠĠĠĠĠ Ġtype Mapping [" date - time "] Ġ= Ġ" kotlin x . datetime . LocalDateTime " ĊĠĠĠĠĠĠĠ Ġtype Mapping [" DateTime "] Ġ= Ġ" LocalDateTime " ĊĠĠĠĠĠĠĠ Ġimport Mapping [" LocalDateTime "] Ġ= Ġ" kotlin x . datetime . LocalDateTime " ĊĠĠĠĠĠĠĠ Ġimport Mapping [" LocalDate "] Ġ= Ġ" kotlin x . datetime . LocalDate " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApplies Ġoptions Ġthat Ġare Ġglobal Ġand Ġshould Ġbe Ġhandled Ġbefore Ġany Ġgeneration Ġstarts . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 3 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġapply Options () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( array As ArrayList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Represent ing Ġkotlin . Array Ġas ĠArrayList ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Specific Primitives . add ( TYPE _ ARRAY _ LIST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Includes . add ( TYPE _ ARRAY _ LIST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Mapping [" array "] Ġ= ĠTYPE _ ARRAY _ LIST ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMaps Ġ[ Any ]? Ġvalue Ġto Ġ[ String ]?. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue Ġto Ġbe Ġmapped Ġto Ġ[ String ]? ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmap Any ToString OrNull ( value : ĠAny ?): ĠString ? Ġ= Ġif Ġ( value Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChanges Ġschemas Ġ( ex cluding Ġ[ Array Schema ], Ġ[ Map Schema ] Ġand Ġ[ Comp osed Schema ]) Ġthat Ġdo Ġnot Ġhave Ġset Ġtype Ġand Ġdo Ġnot ĊĠĠĠĠ Ġ* Ġcontain Ġany Ġproperties . ĠThese Ġschemas Ġare Ġset Ġas Ġ[ String ] Ġso Ġthey Ġare Ġparsed Ġas Ġa Ġ[ String Schema ] Ġinstead Ġof ĊĠĠĠĠ Ġ* Ġ[ Object Schema ]. ĠThis Ġhelps Ġto Ġavoid Ġempty Ġdata Ġclasses Ġwhich Ġcannot Ġpass ĠKotlin Ġcompilation . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġof Ġthe Ġschema Ġbeing Ġchecked ĊĠĠĠĠ Ġ* Ġ@ param Ġschema Ġto Ġbe Ġchecked Ġfor Ġempty Ġtype Ġand Ġproperties ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġempty Data Class AsString ( name : ĠString ?, Ġschema : ĠSchema < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! empty Data Classes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ! is ĠArray Schema Ġ&& Ġit Ġ! is ĠMap Schema Ġ&& Ġit Ġ! is ĠComp osed Schema ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ( it . type Ġ== Ġnull Ġ|| Ġit . type . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ( it . properties Ġ== Ġnull Ġ|| Ġit . properties . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Schema : Ġ$ name Ġre - typed Ġto Ġ\" string \" ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" string " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChanges Ġarray Ġthat Ġcontains Ġcomposed Ġschema Ġto Ġarray Ġthat Ġcontains Ġobject Ġschema Ġbecause Ġthat Ġwill Ġbe Ġchanged Ġto ĊĠĠĠĠ Ġ* Ġ[ kotlin . Any ] Ġlater Ġin Ġthe Ġgeneration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġproperty Ġto Ġbe Ġchecked Ġfor Ġarray Ġof Ġcomposed ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcomposed Array As Any ( name : ĠString ?, Ġproperty : ĠSchema < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( composed Array As Any Ġ&& Ġproperty Ġis ĠArray Schema Ġ&& Ġproperty . items Ġis ĠComp osed Schema ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Schema : Ġ$ name Ġis Ġarray Ġof Ġcomposed Ġ-> Ġchanged Ġto Ġarray Ġof Ġobject ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . items Ġ= ĠObject Schema () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFixes Ġ[ Array Schema ] Ġitems Ġto Ġcontain Ġproper Ġ[ Array Schema ] Ġor Ġ[ Map Schema ] Ġsince Ġit Ġlost Ġit 's Ġtype Ġand Ġgenerated ĊĠĠĠĠ Ġ* Ġincorrect Ġdata Ġtype Ġfor Ġnested Ġarrays Ġand Ġmaps . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfix Array Items Schema ( name : ĠString ?, Ġproperty : ĠSchema < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( property Ġis ĠArray Schema Ġ&& Ġproperty . items Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Trying Ġto Ġfix Ġarray Ġitems Ġfor : Ġ$ name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Schema Ġ= ĠModel Utils . get Referenced Schema ( open API , Ġproperty . items ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Model Utils . is Map Schema ( items Schema ) Ġ|| ĠModel Utils . isArray Schema ( items Schema )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Array Ġitems Ġis ĠMap Ġor ĠArray Ġschema ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . items Ġ= Ġitems Schema ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFixes Ġdata Ġtype Ġfor Ġtype Ġalias Ġpointing Ġto ĠMaps Ġand ĠArray . ĠThey Ġlost Ġsub types Ġand Ġthis Ġfixes Ġthe Ġissue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġresult Model Ġto Ġhave Ġdata Ġtype Ġfixed ĊĠĠĠĠ Ġ* Ġ@ param Ġschema Ġof Ġthe Ġmodel ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 3 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfix Type Alias DataType ( result Model : ĠCode gen Model , Ġschema : ĠSchema < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Model Utils . is Generate Alias As Model ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( schema Ġis ĠMap Schema Ġ|| Ġschema Ġis ĠArray Schema ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Model . dataType Ġ= Ġsuper . getType Declaration ( schema ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġvendor Ġextensions Ġto Ġthe Ġmodel Ġand Ġit 's Ġproperties . ĠExtensions Ġadded : Ġ[ mark Model As Type Alias ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Ġto Ġhave Ġextensions Ġadded ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Model Vendor Extensions ( model : ĠCode gen Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Properties Ġ= Ġmodel . vars Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . all Vars Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . optional Vars Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . required Vars Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . readOnly Vars Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . read Write Vars Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . parent Vars ĊĠĠĠĠĠĠĠ Ġmark Model As Type Alias ( model , Ġmodel Properties . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġmodel Ġvars Ġand Ġall Ġvars Ġof ĠComp osed Ġschema Ġas Ġnot Ġrequired Ġ( nullable ). ĠThis Ġonly Ġworks Ġwhen ĊĠĠĠĠ Ġ* Ġ[ composed Vars Not Required ] Ġis Ġset Ġto Ġtrue Ġand Ġmodel Ġhas Ġeither Ġone Of Ġor Ġany Of Ġvariables Ġset Ġand Ġnot Ġempty . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Ġto Ġbe Ġfixed ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 1 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Comp osed Vars As Not Required ( model : ĠCode gen Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( composed Vars Not Required Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(( model . one Of Ġ!= Ġnull Ġ&& Ġmodel . one Of . isNotEmpty ()) Ġ|| Ġ( model . any Of Ġ!= Ġnull Ġ&& Ġmodel . any Of . isNotEmpty ())) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Model : Ġ${ model . name } Ġcomposed Ġ( one Of , Ġany Of ) Ġvariables Ġset Ġas Ġnot Ġrequired ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . vars . forEach Ġ{ Ġit . required Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . all Vars . forEach Ġ{ Ġit . required Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMark s Ġmodel Ġas Ġtype alias Ġusing Ġvendor Ġextension Ġ[ VENDOR _ EXTENSION _ IS _ ALIAS ]. ĠThis Ġextension Ġis Ġset Ġin Ġtwo ĊĠĠĠĠ Ġ* Ġcases : ĊĠĠĠĠ Ġ* Ġ- Ġ[ empty Data Classes ] Ġis Ġset Ġto Ġfalse Ġand Ġmodel Ġhas Ġno Ġproperties . ĊĠĠĠĠ Ġ* Ġ- Ġ[ generate Primitive Type Alias ] Ġis Ġset Ġto Ġtrue Ġand Ġmodel Ġis Ġalias . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Ġto Ġbe Ġchecked Ġset Ġas Ġtype Ġalias ĊĠĠĠĠ Ġ* Ġ@ param Ġmodel Properties Count Ġused Ġin Ġthe Ġfirst Ġcase ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmark Model As Type Alias ( model : ĠCode gen Model , Ġmodel Properties Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ((! empty Data Classes Ġ&& Ġmodel Properties Count Ġ<= Ġ 0 ) Ġ|| Ġ( model . is Alias Ġ&& Ġgenerate Primitive Type Alias )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Model : Ġ${ model . name } Ġmarked Ġas Ġtype alias ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . vendor Extensions [ VENDOR _ EXTENSION _ IS _ ALIAS ] Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model . dataType Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . dataType Ġ= Ġmodel . parent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( generate Primitive Type Alias ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . is Alias Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFilters Ġout Ġoperation Ġparams Ġif Ġtheir Ġbase Ġname Ġis Ġcontained Ġin Ġ[ remove Operation Params ] Ġlist . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġoperation Ġto Ġhave Ġparams Ġfiltered ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġfilter Operation Params ( operation : ĠCode gen Operation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( remove Operation Params . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation . all Params . remove If Ġ{ Ġremove Operation Params . contains ( it . base Name ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġoperation Ġis ĠMultip art Ġor Ġnot . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġconsume s Ġoperation Ġconsume s Ġlist ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġmultipart ĊĠĠĠĠ Ġ* Ġ@ since Ġ 2 . 0 . 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis Multipart Type ( consume s : ĠList < Map < String , ĠString >> ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Type Ġ= Ġconsume s [ 0 ] ĊĠĠĠĠĠĠĠ Ġreturn Ġ" multipart / form - data " Ġ== Ġfirst Type [" media Type "] ĊĠĠĠ Ġ} Ċ } Ċ