/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . android . build . gradle . internal . dependency Ċ Ċ import Ġorg . gradle . api . artifacts . transform . Cache able Transform Ċ import Ġorg . gradle . api . artifacts . transform . Transform Action Ċ Ċ import Ġcom . android . Sdk Constants Ċ import Ġcom . android . builder . dex ing . Class File Input Ċ import Ġcom . android . utils . FileUtils Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġorg . gradle . api . artifacts . transform . Input Artifact Ċ import Ġorg . gradle . api . artifacts . transform . Transform Outputs Ċ import Ġorg . gradle . api . file . FileSystem Location Ċ import Ġorg . gradle . api . provider . Provider Ċ import Ġorg . gradle . api . tasks . Classpath Ċ Ċ /** Ċ Ġ* ĠA ĠGradle ĠArtifact Ġ[ Transform Action ] Ġthat Ġenum er ates Ġthe Ġclasses Ġin Ġeach Ġmodule , Ċ Ġ* Ġso Ġthey Ġcan Ġbe Ġchecked Ġfor Ġduplicates Ġin ĠCheck Duplicate Classes Task Ċ Ġ*/ Ċ @ Cache able Transform Ċ abstract Ġclass ĠEnum erate Classes Transform Ġ: ĠTransform Action < Generic Transform Parameters > Ġ{ ĊĠĠĠ Ġ@ get : Classpath ĊĠĠĠ Ġ@ get : Input Artifact ĊĠĠĠ Ġabstract Ġval Ġclasses Jar : ĠProvider < FileSystem Location > ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( transform Outputs : ĠTransform Outputs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput File Ġ= Ġclasses Jar . get (). as File ĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġinput File . name Without Extension ĊĠĠĠĠĠĠĠ Ġval Ġenum erated Classes Ġ= Ġtransform Outputs . file ( fileName ) ĊĠĠĠĠĠĠĠ ĠEnum erate Classes Delegate (). run ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput File , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenum erated Classes ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }