package Ġcom . squareup . wire . gradle Ċ Ċ import Ġcom . squareup . wire . internal . Serializable Ċ import Ġok io . Path . Companion . to Ok io Path Ċ import Ġok io . Path . Companion . to Path Ċ import Ġorg . gradle . api . Project Ċ Ċ class ĠInput Location Ġprivate Ġconstructor ( ĊĠ Ġ/** ĠThe Ġbase Ġof Ġthis Ġlocation ; Ġtypically Ġa Ġdirectory Ġor Ġ. jar Ġfile . Ġ*/ ĊĠ Ġval Ġbase : ĠString , ĊĊĠ Ġ/** ĠThe Ġpath Ġto Ġthis Ġlocation Ġrelative Ġto Ġ[ base ]. Ġ*/ ĊĠ Ġval Ġpath : ĠString , Ċ ) Ġ: ĠSerializable Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget ( project : ĠProject , Ġpath : ĠString ): ĠInput Location Ġ{ ĊĠĠĠĠĠ Ġ// ĠWe Ġstore Ġ[ path ] Ġrelative Ġto Ġthe Ġ[ project ] Ġin Ġorder Ġto Ġnot Ġinvalidate Ġthe Ġcache Ġwhen Ġwe ĊĠĠĠĠĠ Ġ// Ġdon 't Ġhave Ġto . ĊĠĠĠĠĠ Ġreturn ĠInput Location ("", Ġproject . relative Path ( path )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget ( ĊĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠ Ġbase : ĠString , ĊĠĠĠĠĠ Ġpath : ĠString ĊĠĠĠ Ġ): ĠInput Location Ġ{ ĊĠĠĠĠĠ Ġval ĠbasePath Ġ= Ġbase . to Path () ĊĠĠĠĠĠ Ġ// ĠOn ĠWindows , Ġa Ġdependency Ġcould Ġlive Ġon Ġanother Ġdrive . ĠIf Ġthat 's Ġa Ġcase , ĊĠĠĠĠĠ Ġ// Ġ` project . relative Path ` Ġwill Ġthrow Ġso Ġwe Ġdon 't Ġtry Ġto Ġoptimize Ġits Ġreference . ĊĠĠĠĠĠ Ġval Ġbase Ġ= Ġif Ġ( basePath . is Absolute Ġ&& Ġproject . build Dir . to Ok io Path (). root Ġ!= ĠbasePath . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbase ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġstore Ġ[ base ] Ġrelative Ġto Ġthe Ġ[ project ] Ġin Ġorder Ġto Ġnot Ġinvalidate Ġthe Ġcache Ġwhen Ġwe ĊĠĠĠĠĠĠĠ Ġ// Ġdon 't Ġhave Ġto . ĊĠĠĠĠĠĠĠ Ġproject . relative Path ( base ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn ĠInput Location ( base . trim End ('/ '), Ġpath ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ