/* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* Ġ Ġhttps :// 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 . Ċ Ġ* Ċ Ġ* ĠOther Ġlicenses : Ċ Ġ* Ġ----------------------------------------------------------------------------- Ċ Ġ* ĠCom mercial Ġlicenses Ġfor Ġthis Ġwork Ġare Ġavailable . ĠThese Ġreplace Ġthe Ġabove Ċ Ġ* ĠAS L Ġ 2 . 0 Ġand Ġoffer Ġlimited Ġwarr ant ies , Ġsupport , Ġmaintenance , Ġand Ġcommercial Ċ Ġ* Ġdatabase Ġintegr ations . Ċ Ġ* Ċ Ġ* ĠFor Ġmore Ġinformation , Ġplease Ġvisit : Ġhttp :// www . jooq . org / licenses Ċ Ġ*/ Ċ Ċ package Ġio . os gu ima 3 . jooq dsl . plugin . context Ċ Ċ import Ġio . os gu ima 3 . jooq dsl . model . context . Field Context Ċ import Ġio . os gu ima 3 . jooq dsl . model . context . Table Context Ċ import Ġkotlin . reflect . K Class Ċ Ċ class ĠTable Context Impl ( private Ġval Ġcontext : ĠJ oo q Context , Ġprivate Ġval ĠtableName : ĠString ) Ġ: ĠTable Context Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfields Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠ Ġoverride Ġfun Ġfield ( name : ĠString , Ġtype : ĠK Class <* >) Ġ= Ġfield ( name ) Ġ{ Ġtype ( type ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfield ( name : ĠString , Ġconfigure : ĠField Context . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( fields . add ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠField Context Impl ( context , ĠtableName , Ġname ). run ( configure ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Field Ġ$ name Ġalready Ġinitialized ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ