/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ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 . gradle . kotlin . dsl . access ors ĊĊ Ċ import Ġkotlinx . metadata . Km Variance Ċ import Ġkotlinx . metadata . jvm . Jvm Method Signature Ċ import Ġkotlinx . metadata . jvm . Kotlin Class Metadata Ċ Ċ import Ġorg . gradle . api . reflect . TypeOf Ċ Ċ import Ġorg . gradle . internal . hash . Hash Util Ċ Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . AL O AD Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . ARE T URN Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . CHECK CAST Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . IN VOKE INTERFACE Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . IN VOKE STATIC Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . Internal Name Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . Internal Name Of Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . Km Type Builder Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . L DC Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . RETURN Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . action TypeOf Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . generic TypeOf Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . internal Name Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . jvm Getter Signature For Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . public Function Flags Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . public Static Method Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . public Static Synt hetic Method Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . visit Optional Parameter Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . visit Parameter Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . visit Signature Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . with Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . write Function Of Ċ import Ġorg . gradle . kotlin . dsl . support . byte code . write Property Of Ċ Ċ import Ġorg . jetbrains . org . object web . asm . Method Visitor ĊĊ Ċ internal Ċ fun Ġfragments For ( accessor : ĠAccess or ): ĠF rag ments Ġ= Ġwhen Ġ( accessor ) Ġ{ ĊĠĠĠ Ġis ĠAccess or . For Configuration Ġ-> Ġfragments For Configuration ( accessor ) ĊĠĠĠ Ġis ĠAccess or . For Extension Ġ-> Ġfragments For Extension ( accessor ) ĊĠĠĠ Ġis ĠAccess or . For Convention Ġ-> Ġfragments For Convention ( accessor ) ĊĠĠĠ Ġis ĠAccess or . For Task Ġ-> Ġfragments For Task ( accessor ) ĊĠĠĠ Ġis ĠAccess or . For Container Element Ġ-> Ġfragments For Container Element ( accessor ) Ċ } ĊĊ Ċ private Ċ fun Ġfragments For Configuration ( accessor : ĠAccess or . For Configuration ): ĠF rag ments Ġ= Ġaccessor . run Ġ{ ĊĊĠĠĠ Ġval ĠpropertyName Ġ= Ġname . original ĊĠĠĠ Ġval ĠclassName Ġ= ĠInternal Name ("$ package Path /${ propertyName . capitalize ()} Configuration Accessors Kt ") ĊĊĠĠĠ ĠclassName Ġto Ġsequence Of ( ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġdependency Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Not ation Ġnotation Ġfor Ġthe Ġdependency Ġto Ġbe Ġadded . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠDependency Handler .` $ kotlin Identifier `( dependency Not ation : ĠAny ): ĠDependency ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ("$ string Literal ", Ġdependency Not ation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( name . original ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Dependency Handler Add () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . dependency Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnullable ReturnType Ġ= ĠGradle Type . dependency , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġsignature . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Name Ġ= Ġ" dependency Not ation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Type Ġ= ĠKotlin Type . any , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . original , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Dependency Handler ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġdependency Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Not ation Ġnotation Ġfor Ġthe Ġdependency Ġto Ġbe Ġadded . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Configuration Ġexpression Ġto Ġuse Ġto Ġconfigure Ġthe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠDependency Handler .` $ kotlin Identifier `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Not ation : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Configuration : ĠAction < External Module Dependency > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠExternal Module Dependency Ġ= Ġadd Dependency To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ"$ string Literal ", Ġdependency Not ation , Ġdependency Configuration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠExternal Module Dependency ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Runtime ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" add Dependency To ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L ${ Gradle TypeName . dependency Handler }; Ljava / lang / String ; Ljava / lang / Object ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCHECK CAST ( Gradle TypeName . external Module Dependency ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . dependency Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠGradle Type . external Module Dependency , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" dependency Not ation ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" dependency Configuration ", Ġaction TypeOf ( Gradle Type . external Module Dependency )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Dependency Handler ; Ljava / lang / String ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / External Module Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġdependency Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġgroup Ġthe Ġgroup Ġof Ġthe Ġmodule Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġname Ġthe Ġname Ġof Ġthe Ġmodule Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġversion Ġthe Ġoptional Ġversion Ġof Ġthe Ġmodule Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconfiguration Ġthe Ġoptional Ġconfiguration Ġof Ġthe Ġmodule Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġclassifier Ġthe Ġoptional Ġclassifier Ġof Ġthe Ġmodule Ġartifact Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġext Ġthe Ġoptional Ġextension Ġof Ġthe Ġmodule Ġartifact Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Configuration Ġexpression Ġto Ġuse Ġto Ġconfigure Ġthe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Handler . create ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠDependency Handler .` $ kotlin Identifier `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassifier : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġext : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Configuration : ĠAction < External Module Dependency >? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠExternal Module Dependency Ġ= Ġadd External Module Dependency To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ"$ string Literal ", Ġgroup , Ġname , Ġversion , Ġconfiguration , Ġclassifier , Ġext , Ġdependency Configuration ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmethod Body : ĠMethod Visitor . () Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 1 .. 7 ). forEach Ġ{ ĠA LOAD ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Runtime ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" add External Module Dependency To ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Dependency Handler ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / External Module Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUsually , Ġthis Ġmethod Ġwould Ġcompute Ġthe Ġdefault Ġargument Ġvalues ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġand Ġdelegate Ġto Ġthe Ġoriginal Ġimplementation . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHere Ġwe Ġcan Ġsimply Ġinline Ġthe Ġimplementation Ġin Ġboth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmethods . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoverload 3 Defaults Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ propertyName \$ default ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" L org / gradle / api / artifacts / dsl / Dependency Handler ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ljava / lang / String ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ljava / lang / String ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ljava / lang / String ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ljava / lang / String ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ljava / lang / String ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ljava / lang / String ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" L org / gradle / api / Action ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" IL java / lang / Object ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") L org / gradle / api / artifacts / External Module Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Synt hetic Method ( overload 3 Defaults ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Body () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Flags Ġ= Ġpublic Function Flags , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . dependency Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠGradle Type . external Module Dependency , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" group ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" name ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Optional Parameter (" version ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Optional Parameter (" configuration ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Optional Parameter (" classifier ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Optional Parameter (" ext ", ĠKotlin Type . string ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Optional Parameter (" dependency Configuration ", Ġaction TypeOf ( Gradle Type . external Module Dependency )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Dependency Handler ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; Ljava / lang / String ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / External Module Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġdependency Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Ġdependency Ġto Ġbe Ġadded . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Configuration Ġexpression Ġto Ġuse Ġto Ġconfigure Ġthe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ< T Ġ: ĠModule Dependency > ĠDependency Handler .` $ kotlin Identifier `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency : ĠT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Configuration : ĠT . () Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠT Ġ= Ġadd ("$ string Literal ", Ġdependency , Ġdependency Configuration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Action () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . dependency Handler , Ġ" add ", Ġ"( Ljava / lang / String ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Dependency ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . visit Function ( public Function Flags , ĠpropertyName ) !!. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Type Parameter ( 0 , Ġ" T ", Ġ 0 , ĠK m Variance . IN VARIANT ) !!. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Upper Bound ( 0 ). with ( Gradle Type . dependency ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Receiver ParameterType ( 0 ). with ( Gradle Type . dependency Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" dependency ", ĠKotlin Type . type Parameter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" action ", Ġaction TypeOf ( Kotlin Type . type Parameter )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit ReturnType ( 0 ). with ( Kotlin Type . type Parameter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Signature ( signature ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" L org / gradle / api / artifacts / dsl / Dependency Handler ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" L org / gradle / api / artifacts / Dependency ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" L org / gradle / api / Action ;" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") L org / gradle / api / artifacts / Dependency ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġdependency Ġconstraint Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconstraint Not ation Ġthe Ġdependency Ġconstraint Ġnotation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġadded Ġdependency Ġconstraint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Constraint Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inc ub ating ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠDependency Constraint Handler .` $ kotlin Identifier `( constraint Not ation : ĠAny ): ĠDependency Constraint ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ("$ string Literal ", Ġconstraint Not ation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . dependency Constraint Handler , Ġ" add ", Ġ"( Ljava / lang / String ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Dependency Constraint ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . dependency Constraint Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnullable ReturnType Ġ= ĠGradle Type . dependency Constraint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Name Ġ= Ġ" constraint Not ation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameter Type Ġ= ĠKotlin Type . any , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Dependency Constraint Handler ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Dependency Constraint ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġa Ġdependency Ġconstraint Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconstraint Not ation Ġthe Ġdependency Ġconstraint Ġnotation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġblock Ġthe Ġblock Ġto Ġuse Ġto Ġconfigure Ġthe Ġdependency Ġconstraint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġadded Ġdependency Ġconstraint ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Dependency Constraint Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Inc ub ating ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠDependency Constraint Handler .` $ kotlin Identifier `( constraint Not ation : ĠAny , Ġblock : ĠDependency Constraint . () Ġ-> ĠUnit ): ĠDependency Constraint ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ("$ string Literal ", Ġconstraint Not ation , Ġblock ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . dependency Constraint Handler , Ġ" add ", Ġ"( Ljava / lang / String ; Ljava / lang / Object ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / Dependency Constraint ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . dependency Constraint Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠGradle Type . dependency Constraint , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" constraint Not ation ", ĠKotlin Type . any ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" block ", Ġaction TypeOf ( Gradle Type . dependency Constraint )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Dependency Constraint Handler ; Ljava / lang / Object ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / Dependency Constraint ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġan Ġartifact Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġartifact Not ation Ġthe Ġgroup Ġof Ġthe Ġmodule Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġartifact . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Artifact Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠArtifact Handler .` $ kotlin Identifier `( artifact Not ation : ĠAny ): ĠPublish Artifact Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ("$ string Literal ", Ġartifact Not ation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( name . original ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . artifact Handler , Ġ" add ", Ġ"( Ljava / lang / String ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Publish Artifact ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . artifact Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠGradle Type . publish Artifact , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Flags Ġ= Ġpublic Function Flags , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" artifact Not ation ", ĠKotlin Type . any ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . original , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Artifact Handler ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Publish Artifact ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġname . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠAdds Ġan Ġartifact Ġto Ġthe Ġ'$ original ' Ġconfiguration . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġartifact Not ation Ġthe Ġgroup Ġof Ġthe Ġmodule Ġto Ġbe Ġadded Ġas Ġa Ġdependency . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġconfigure Action ĠThe Ġaction Ġto Ġexecute Ġto Ġconfigure Ġthe Ġartifact . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠThe Ġartifact . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ see Ġ[ Artifact Handler . add ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠArtifact Handler .` $ kotlin Identifier `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Not ation : ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Action : Ġ ĠConfigur able Publish Artifact . () Ġ-> ĠUnit ): ĠPublish Artifact Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ("$ string Literal ", Ġartifact Not ation , Ġconfigure Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . artifact Handler , Ġ" add ", Ġ"( Ljava / lang / String ; Ljava / lang / Object ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / Publish Artifact ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= ĠGradle Type . artifact Handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠGradle Type . publish Artifact , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunction Flags Ġ= Ġpublic Function Flags , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" artifact Not ation ", ĠKotlin Type . any ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" configure Action ", Ġaction TypeOf ( Gradle Type . configurable Publish Artifact )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . original , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L org / gradle / api / artifacts / dsl / Artifact Handler ; Ljava / lang / Object ; L org / gradle / api / Action ;) L org / gradle / api / artifacts / Publish Artifact ;" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . original , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } ĊĊ Ċ private Ċ fun Ġfragments For Container Element ( accessor : ĠAccess or . For Container Element ) Ġ= ĊĠĠĠ Ġfragments For Container Element Of ( ĊĠĠĠĠĠĠĠ ĠGradle TypeName . named Domain Object Provider , ĊĠĠĠĠĠĠĠ ĠGradle TypeName . named WithType MethodDescriptor , ĊĠĠĠĠĠĠĠ Ġaccessor . spec , ĊĠĠĠĠĠĠĠ Ġexisting Container Element Accessor ( accessor . spec ) ĊĠĠĠ Ġ) ĊĊ Ċ private Ċ fun Ġfragments For Task ( accessor : ĠAccess or . For Task ) Ġ= ĊĠĠĠ Ġfragments For Container Element Of ( ĊĠĠĠĠĠĠĠ ĠGradle TypeName . task Provider , ĊĠĠĠĠĠĠĠ ĠGradle TypeName . named Task WithType MethodDescriptor , ĊĠĠĠĠĠĠĠ Ġaccessor . spec , ĊĠĠĠĠĠĠĠ Ġexisting Task Accessor ( accessor . spec ) ĊĠĠĠ Ġ) ĊĊ Ċ private Ċ fun Ġfragments For Container Element Of ( ĊĠĠĠ Ġprovider Type : ĠInternal Name , ĊĠĠĠ Ġnamed MethodDescriptor : ĠString , ĊĠĠĠ Ġaccessor Spec : ĠTyped Accessor Spec , ĊĠĠĠ Ġsource : ĠString Ċ ): ĠF rag ments Ġ{ ĊĊĠĠĠ Ġval ĠclassName Ġ= Ġinternal Name For Accessor Class Of ( accessor Spec ) ĊĠĠĠ Ġval Ġ( accessible Receiver Type , Ġname , ĠreturnType ) Ġ= Ġaccessor Spec ĊĠĠĠ Ġval ĠpropertyName Ġ= Ġname . kotlin Identifier ĊĠĠĠ Ġval Ġreceiver Type Ġ= Ġaccessible Receiver Type . type . builder ĊĠĠĠ Ġval Ġreceiver TypeName Ġ= Ġaccessible Receiver Type . internal Name () ĊĠĠĠ Ġval Ġ( kotlin ReturnType , Ġj vm ReturnType ) Ġ= Ġaccessible Types For ( returnType ) ĊĊĠĠĠ Ġreturn ĠclassName Ġto Ġsequence Of ( ĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġsource , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( propertyName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( jvm ReturnType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( receiver TypeName , Ġ" named ", Ġnamed MethodDescriptor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Element Accessor Metadata For ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin ReturnType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġj vm Getter Signature For ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccessor Descriptor For ( receiver TypeName , Ġprovider Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } ĊĊ Ċ private Ċ fun Ġfragments For Extension ( accessor : ĠAccess or . For Extension ): ĠF rag ments Ġ{ ĊĊĠĠĠ Ġval Ġaccessor Spec Ġ= Ġaccessor . spec ĊĠĠĠ Ġval ĠclassName Ġ= Ġinternal Name For Accessor Class Of ( accessor Spec ) ĊĠĠĠ Ġval Ġ( accessible Receiver Type , Ġname , ĠreturnType ) Ġ= Ġaccessor Spec ĊĠĠĠ Ġval ĠpropertyName Ġ= Ġname . kotlin Identifier ĊĠĠĠ Ġval Ġreceiver Type Ġ= Ġaccessible Receiver Type . type . builder ĊĠĠĠ Ġval Ġreceiver TypeName Ġ= Ġaccessible Receiver Type . internal Name () ĊĠĠĠ Ġval Ġ( kotlin ReturnType , Ġj vm ReturnType ) Ġ= Ġaccessible Types For ( returnType ) ĊĊĠĠĠ Ġreturn ĠclassName Ġto Ġsequence Of ( ĊĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġextension Accessor ( accessor Spec ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( name . original ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Runtime ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" extension Of ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( Ljava / lang / Object ; Ljava / lang / String ;) Ljava / lang / Object ;" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( returnType Ġis ĠType Accessibility . Accessible ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCHECK CAST ( jvm ReturnType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Property Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= Ġreceiver Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= Ġkotlin ReturnType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgetter Signature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġj vm Getter Signature For ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccessor Descriptor For ( receiver TypeName , Ġj vm ReturnType ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCHECK CAST ( Gradle TypeName . extension Aware ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . extension Aware , Ġ" get Extensions ", Ġ" () L org / gradle / api / plugins / Extension Container ; ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL DC ( name . original ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . extension Container , Ġ" configure ", Ġ"( Ljava / lang / String ; L org / gradle / api / Action ;) V ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= Ġreceiver Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠKotlin Type . unit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" configure ", Ġaction TypeOf ( kotlin ReturnType )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L $ receiver TypeName ; L org / gradle / api / Action ;) V " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } ĊĊ Ċ private Ċ fun Ġfragments For Convention ( accessor : ĠAccess or . For Convention ): ĠF rag ments Ġ{ ĊĊĠĠĠ Ġval Ġaccessor Spec Ġ= Ġaccessor . spec ĊĠĠĠ Ġval ĠclassName Ġ= Ġinternal Name For Accessor Class Of ( accessor Spec ) ĊĠĠĠ Ġval Ġ( accessible Receiver Type , Ġname , ĠreturnType ) Ġ= Ġaccessor Spec ĊĠĠĠ Ġval Ġreceiver Type Ġ= Ġaccessible Receiver Type . type . builder ĊĠĠĠ Ġval ĠpropertyName Ġ= Ġname . kotlin Identifier ĊĠĠĠ Ġval Ġreceiver TypeName Ġ= Ġaccessible Receiver Type . internal Name () ĊĠĠĠ Ġval Ġ( kotlin ReturnType , Ġj vm ReturnType ) Ġ= Ġaccessible Types For ( returnType ) ĊĊĠĠĠ Ġreturn ĠclassName Ġto Ġsequence Of ( ĊĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġconvention Accessor ( accessor Spec ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Convention Of ( name , ĠreturnType , Ġj vm ReturnType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA RETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Property Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= Ġreceiver Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= Ġkotlin ReturnType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgetter Signature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġj vm Getter Signature For ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccessor Descriptor For ( receiver TypeName , Ġj vm ReturnType ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĊĠĠĠĠĠĠĠ ĠAccess or Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytecode Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Static Method ( signature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA LOAD ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Convention Of ( name , ĠreturnType , Ġj vm ReturnType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Action () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRETURN () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Function Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver Type Ġ= Ġreceiver Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnType Ġ= ĠKotlin Type . unit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisit Parameter (" configure ", Ġaction TypeOf ( kotlin ReturnType )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= ĠJ vm Method Signature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( L $ receiver TypeName ; L org / gradle / api / Action ;) V " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) Ċ } ĊĊ Ċ private Ċ fun ĠMethod Visitor . invoke Dependency Handler Add () Ġ{ ĊĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . dependency Handler , Ġ" add ", Ġ"( Ljava / lang / String ; Ljava / lang / Object ;) L org / gradle / api / artifacts / Dependency ; ") Ċ } ĊĊ Ċ private Ċ fun ĠMethod Visitor . invoke Runtime ( function : ĠString , Ġdesc : ĠString ) Ġ{ ĊĠĠĠ ĠIN VOKE STATIC ( Internal Name (" org / gradle / kotlin / dsl / access ors / runtime / Runtime Kt "), Ġfunction , Ġdesc ) Ċ } ĊĊ Ċ private Ċ fun Ġhash Of ( accessor Spec : ĠTyped Accessor Spec ) Ġ= ĊĠĠĠ ĠHash Util . create Compact MD 5 ( accessor Spec . toString ()) ĊĊ Ċ private Ċ fun ĠType Accessibility . Accessible . internal Name () Ġ= ĊĠĠĠ Ġtype . value . concrete Class . internal Name ĊĊ Ċ private Ċ fun ĠMethod Visitor . invoke Action () Ġ{ ĊĠĠĠ ĠIN VOKE INTERFACE ( Gradle TypeName . action , Ġ" execute ", Ġ"( Ljava / lang / Object ;) V ") Ċ } ĊĊ Ċ private Ċ fun ĠMethod Visitor . load Convention Of ( name : ĠAccess or Name Spec , ĠreturnType : ĠType Accessibility , Ġj vm ReturnType : ĠInternal Name ) Ġ{ ĊĠĠĠ ĠA LOAD ( 0 ) ĊĠĠĠ ĠL DC ( name . original ) ĊĠĠĠ Ġinvoke Runtime ( ĊĠĠĠĠĠĠĠ Ġ" convention Plugin Of ", ĊĠĠĠĠĠĠĠ Ġ"( Ljava / lang / Object ; Ljava / lang / String ;) Ljava / lang / Object ;" ĊĠĠĠ Ġ) ĊĠĠĠ Ġif Ġ( returnType Ġis ĠType Accessibility . Accessible ) ĊĠĠĠĠĠĠĠ ĠCHECK CAST ( jvm ReturnType ) Ċ } ĊĊ Ċ private Ċ fun Ġaccessible Types For ( type Accessibility : ĠType Accessibility ): ĠPair < Km Type Builder , ĠInternal Name > Ġ= Ġwhen Ġ( type Accessibility ) Ġ{ ĊĠĠĠ Ġis ĠType Accessibility . Accessible Ġ-> Ġtype Accessibility . run Ġ{ Ġtype . builder Ġto Ġinternal Name () Ġ} ĊĠĠĠ Ġis ĠType Accessibility . In accessible Ġ-> ĠKotlin Type . any Ġto ĠInternal Name Of . java Lang Object Ċ } ĊĊ Ċ private Ċ val ĠSchema Type . builder : ĠK m Type Builder ĊĠĠĠ Ġget () Ġ= Ġvalue . builder ĊĊ Ċ private Ċ val ĠType Of <* >. builder : ĠK m Type Builder ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġis Parameterized Ġ-> Ġgeneric TypeOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Of ( parameter ized Type Definition . concrete Class ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual Type Arguments . map Ġ{ Ġit . builder Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġis Wildcard Ġ-> Ġupper Bound ?. builder Ġ?: ĠKotlin Type . any ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġclass Of ( concrete Class ) ĊĠĠĠ Ġ} ĊĊ Ċ internal Ċ inline Ġfun Ġ< re ified ĠT > Ġclass Of (): ĠK m Type Builder Ġ= ĊĠĠĠ Ġclass Of ( T :: class . java ) ĊĊ Ċ private Ċ fun Ġclass Of (` class `: ĠClass <* >) Ġ= ĊĠĠĠ Ġclass Of (` class `. internal Name ) ĊĊ Ċ private Ċ fun Ġclass Of ( className : ĠInternal Name ): ĠK m Type Builder Ġ= ĊĠĠĠ Ġkotlin Name Of ( className ). let Ġ{ Ġkotlin Name Ġ-> ĊĠĠĠĠĠĠĠ Ġ{ Ġvisit Class ( kotlin Name ) Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ private Ċ fun Ġkotlin Name Of ( className : ĠInternal Name ) Ġ= ĠclassName . run Ġ{ ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue . startsWith (" kotlin / jvm / functions /") Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kotlin /" Ġ+ Ġvalue . substring After (" kotlin / jvm / functions /") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Primitive Types [ value ] Ġ?: Ġvalue . replace ('$ ', Ġ'.') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ private Ċ val Ġkotlin Primitive Types Ġ= Ġprimitive Type Strings . as Sequence (). map Ġ{ Ġ( jvm Name , Ġkotlin Name ) Ġ-> ĊĠĠĠ Ġj vm Name . replace ('.', Ġ'/') Ġto Ġ" kotlin /$ kotlin Name " Ċ }. toMap () ĊĊ Ċ private Ċ fun Ġinternal Name For Accessor Class Of ( accessor Spec : ĠTyped Accessor Spec ): ĠInternal Name Ġ= ĊĠĠĠ ĠInternal Name ("$ package Path / Accessors ${ hash Of ( accessor Spec )} Kt ") ĊĊ Ċ internal Ċ const Ġval Ġpackage Path Ġ= Ġ" org / gradle / kotlin / dsl " ĊĊ Ċ private Ċ fun ĠKotlin Class Metadata . File Facade . Writer . write Element Accessor Metadata For ( ĊĠĠĠ Ġcontainer Type : ĠK m Type Builder , ĊĠĠĠ Ġprovider Type : ĠInternal Name , ĊĠĠĠ Ġelement Type : ĠK m Type Builder , ĊĠĠĠ ĠpropertyName : ĠString , ĊĠĠĠ Ġgetter Signature : ĠJ vm Method Signature Ċ ) Ġ{ ĊĠĠĠ Ġwrite Property Of ( ĊĠĠĠĠĠĠĠ Ġreceiver Type Ġ= Ġcontainer Type , ĊĠĠĠĠĠĠĠ ĠreturnType Ġ= Ġgeneric TypeOf ( class Of ( provider Type ), Ġelement Type ), ĊĠĠĠĠĠĠĠ ĠpropertyName Ġ= ĠpropertyName , ĊĠĠĠĠĠĠĠ Ġgetter Signature Ġ= Ġgetter Signature ĊĠĠĠ Ġ) Ċ } ĊĊ Ċ private Ċ fun Ġaccessor Descriptor For ( receiver Type : ĠInternal Name , ĠreturnType : ĠInternal Name ) Ġ= ĊĠĠĠ Ġ"( L $ receiver Type ;) L $ returnType ;" Ċ