/* Ċ Ġ* ĠĠĠ ĠCopyright Ġ 2 0 1 6 - 2 0 2 1 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 Ġorg . mybatis . dynamic . sql . util . kotlin Ċ Ċ import Ġorg . mybatis . dynamic . sql . Basic Column Ċ import Ġorg . mybatis . dynamic . sql . select . join . Join Condition Ċ import Ġorg . mybatis . dynamic . sql . select . join . Join Criterion Ċ Ċ type alias ĠJoin Receiver Ġ= ĠJoin Collector . () Ġ-> ĠUnit Ċ Ċ @ My Batis Dsl Marker Ċ class ĠJoin Collector Ġ{ ĊĠĠĠ Ġval Ġon Join Criterion : ĠJoin Criterion Ġby Ġlazy Ġ{ Ġinternal On Criterion Ġ} ĊĠĠĠ Ġval Ġand Join Criteria Ġ= Ġmutable ListOf < Join Criterion >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinternal On Criterion : ĠJoin Criterion ĊĊĠĠĠ Ġfun Ġon ( column : ĠBasic Column , Ġcondition : ĠJoin Condition ): ĠJoin Collector Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal On Criterion Ġ= ĠJoin Criterion . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Connector (" on ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with JoinColumn ( column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Join Condition ( condition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġand ( column : ĠBasic Column , Ġcondition : ĠJoin Condition ): ĠJoin Collector Ġ= ĊĠĠĠĠĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Join Criteria . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin Criterion . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Connector (" and ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with JoinColumn ( column ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Join Condition ( condition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ