package Ġu y . ko hes ive . iac . model . aws . codegen Ċ Ċ import Ġcom . amazonaws . codegen . emitter s . Code Writer Ċ import Ġcom . amazonaws . codegen . emitter s . F reem ark er Generator Task Ċ import Ġfre emark er . template . Template Ċ import Ġjava . io . Writer Ċ Ċ class ĠI ac Context Generator Task Ġprivate Ġconstructor ( writer : ĠWriter , Ġtemplate : ĠTemplate , Ġdata : ĠAny ) ĊĠĠĠ Ġ: ĠF reem ark er Generator Task ( writer , Ġtemplate , Ġdata ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( output Directory : ĠString , Ġbase Context Data : ĠBase Context Data ): ĠI ac Context Generator Task Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Context Data . clients . sortBy Ġ{ Ġit . aws Interface ClassName Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Context Data . contexts . sortBy Ġ{ Ġit . context ClassName Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠI ac Context Generator Task ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCode Writer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Directory Ġ+ Ġ"/" Ġ+ ĠBase Context Data . Package Path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" I ac Context ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ". kt " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Descriptor . Base I ac Context . load (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Context Data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠBase Context Data Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠPackage Name Ġ= Ġ" uy . ko hes ive . iac . model . aws " ĊĠĠĠĠĠĠĠ Ġval ĠPackage Path Ġ= ĠPackage Name . replace ('.', Ġ'/') ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcontext PackageName : ĠString Ġ= ĠPackage Name ĊĠĠĠ Ġval Ġclients Ġ Ġ= ĠArrayList < Generated Client Info >() ĊĠĠĠ Ġval Ġcontexts Ġ= ĠArrayList < Generated Context Info >() ĊĊĠĠĠ Ġfun Ġget Un versioned Clients () Ġ= Ġclients . filter Not Ġ{ Ġit . versioned Ġ} Ċ Ċ } Ċ Ċ data Ġclass ĠGenerated Context Info ( ĊĠĠĠ Ġval Ġcontext FieldName : ĠString , ĊĠĠĠ Ġval Ġenabled ClassName : ĠString , ĊĠĠĠ Ġval Ġcontext ClassName : ĠString Ċ ) Ċ Ċ data Ġclass ĠGenerated Client Info ( ĊĠĠĠ Ġval Ġversion ed : ĠBoolean , ĊĠĠĠ Ġval Ġclient FieldName : ĠString , ĊĠĠĠ Ġval Ġdeferred Client ClassName : ĠString , ĊĠĠĠ Ġval Ġaws Interface ClassName : ĠString , ĊĠĠĠ Ġval Ġaws Interface Class Fq : ĠString Ċ )