package Ġcom . av ito . test . gradle . dependencies Ċ Ċ import Ġcom . av ito . test . gradle . dependencies . Gradle Dependency . Safe . Coordinate . External Ċ import Ġcom . av ito . test . gradle . dependencies . Gradle Dependency . Safe . Coordinate . Platform Ċ import Ġcom . av ito . test . gradle . dependencies . Gradle Dependency . Safe . Coordinate . Project Ċ import Ġorg . gradle . util . Path Ċ Ċ public Ġsealed Ġclass ĠGradle Dependency Ġ: ĠGradle Script Compatible Ġ{ ĊĊĠĠĠ Ġpublic Ġdata Ġclass ĠRaw ( val Ġraw Dependency : ĠString ) Ġ: ĠGradle Dependency () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Script Representation (): ĠString Ġ= Ġraw Dependency ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġdata Ġclass ĠSafe ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconfiguration : ĠCONFIG URATION , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdep : ĠCoordinate ĊĠĠĠ Ġ) Ġ: ĠGradle Dependency () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġpublic Ġenum Ġclass ĠCONFIG URATION ( private Ġval Ġrepresentation : ĠString ) Ġ: ĠGradle Script Compatible Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIMP LEMENT ATION (" implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTEST _ IMPLEMENT ATION (" test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAND ROID _ TEST _ IMPLEMENT ATION (" android Test Implementation "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAPI (" api "); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Script Representation (): ĠString Ġ= Ġrepresentation ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpublic Ġsealed Ġclass ĠCoordinate Ġ: ĠGradle Script Compatible Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġdata Ġclass ĠExternal ( val Ġcoordinates : ĠString ) Ġ: ĠCoordinate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Script Representation (): ĠString Ġ= Ġ"\" $ coordinates \"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġdata Ġclass ĠProject ( val Ġpath : ĠPath ) Ġ: ĠCoordinate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Script Representation (): ĠString Ġ= Ġ" project (\" ${ path . path }\ ")" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġdata Ġclass ĠPlatform ( val Ġcoordinate : ĠCoordinate ) Ġ: ĠCoordinate () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Script Representation (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" platform (${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( coordinate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠExternal Ġ-> Ġcoordinate . get Script Representation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProject Ġ-> Ġcoordinate . get Script Representation () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Platform Ġcoordinate Ġcould Ġbe Ġeither ĠExternal Ġor ĠProject " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Script Representation (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"${ configuration . get Script Representation ()} (${ dep . get Script Representation () })" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfun Ġexternal ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinate : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration : ĠCONFIG URATION Ġ= ĠCONFIG URATION . IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠSafe Ġ= ĠSafe ( configuration , ĠExternal ( coordinate )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfun Ġproject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration : ĠCONFIG URATION Ġ= ĠCONFIG URATION . IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠSafe Ġ= ĠSafe ( configuration , ĠProject ( Path . path ( path ))) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfun Ġplatform Project ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration : ĠCONFIG URATION Ġ= ĠCONFIG URATION . IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠSafe Ġ= ĠSafe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform ( Project ( Path . path ( path ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġfun Ġplatform External ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinate : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration : ĠCONFIG URATION Ġ= ĠCONFIG URATION . IMPLEMENT ATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠSafe Ġ= ĠSafe ( configuration , ĠExternal ( coordinate )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ