/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠA aron ĠGal uzz i Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġgal uzz i . kode gen . java . support Ċ Ċ import Ġgal uzz i . kode gen . java . Java Constructor Ċ import Ġgal uzz i . kode gen . java . Scope Ċ import Ġgal uzz i . kode gen . java . Type Ċ import Ġgal uzz i . kode gen . java . template . Constructor Template Ċ Ċ /** Ċ Ġ* ĠA Ġcode Ġelement Ġthat Ġmay Ġcontain Ġconstructors . Ċ Ġ*/ Ċ interface ĠConstruct able Ċ { ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġlist Ġof Ġconstructors ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Construct ors (): ĠList < Java Constructor > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġa Ġconstructor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconstructor ( scope : ĠScope Ġ= ĠScope . PUBLIC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit : ĠJava Constructor . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠJava Constructor ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġa Ġconstructor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconstructor ( template : ĠConstructor Template ): ĠJava Constructor ĊĊĠĠĠ Ġclass ĠImp l ( private Ġval Ġtype : ĠType ) Ġ: ĠConstruct able ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconstructors Ġ= Ġmutable ListOf < Java Constructor >() ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Construct ors (): ĠList < Java Constructor > ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconstructors ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconstructor ( scope : ĠScope , Ġinit : ĠJava Constructor . () Ġ-> ĠUnit ): ĠJava Constructor ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= ĠJava Constructor ( type , Ġscope ). apply ( init ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstructors Ġ+= Ġconstructor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconstructor ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconstructor ( template : ĠConstructor Template ): ĠJava Constructor ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= Ġtemplate . build ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstructors Ġ+= Ġconstructor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconstructor ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }