@ file : Suppress (" DE PREC ATION ") Ċ // Ġtodo Ġuse Ġnew Ġapi ? Ċ Ċ package Ġcom . av ito . impact . configuration Ċ Ċ import Ġcom . android . build . gradle . api . Android Source Set Ċ import Ġcom . av ito . android . Result Ċ import Ġcom . av ito . android . android Base Extension Ċ import Ġcom . av ito . android . is Android Ċ import Ġcom . av ito . impact . changes . Changed File Ċ import Ġcom . av ito . impact . util . Equality Ċ import Ġcom . av ito . module . configurations . Configuration Type Ċ import Ġcom . av ito . module . dependencies . dependencies On Projects Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠWrapper Ġabove Ġ[ org . gradle . api . artifacts . Configuration ] Ġto Ġreduce Ġan Ġamount Ġof Ġconfigurations Ċ Ġ*/ Ċ abstract Ġclass ĠBase Configuration ( ĊĠĠĠ Ġval Ġmodule : ĠInternal Module , ĊĠĠĠ Ġval Ġtypes : ĠSet < Class < out ĠConfiguration Type >> Ċ ) Ġ: ĠE quality Ġ{ ĊĊĠĠĠ Ġabstract Ġval Ġis Modified : ĠBoolean ĊĠĠĠ Ġprotected Ġval Ġproject Ġ= Ġmodule . project ĊĠĠĠ Ġprotected Ġval Ġchanges Detector Ġ= Ġmodule . changes Detector ĊĠĠĠ Ġval Ġpath : ĠString Ġ= Ġproject . path ĊĊĠĠĠ Ġopen Ġval Ġhas Changed Files : ĠBoolean Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġchanged Files () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . error (" Can 't Ġfind Ġchanges ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getOrElse Ġ{ Ġtrue Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġval Ġdependencies : ĠSet < Main Configuration > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġmodule . project . dependencies On Projects ( types ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dependency Project ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. internal Module ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. main Configuration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġall Dependencies ( include Self : ĠBoolean Ġ= Ġtrue ): ĠSet < Base Configuration > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġthis . dependencies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . all Dependencies ( include Self Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( include Self ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies . plus ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsource Sets (): ĠSet < File > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( project . is Android ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . android Base Extension . source Sets ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġcontains Sources ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . java . src Dirs Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠFile ( it . canonical Path . substring Before Last (" java ")) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . exists () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( project . project Dir ) Ġ// ĠTODO Ġfind Ġsource Ġsets ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġchanged Files (): ĠResult < List < Changed File >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsource Sets () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġsource Dir Ġ-> Ġchanges Detector . compute Changes ( source Dir ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( Result . try Catch Ġ{ ĠlistOf () Ġ}) Ġ{ Ġaccumulator , Ġelement Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . try Catch Ġ{ Ġaccumulator . get OrThrow () Ġ+ Ġelement . get OrThrow () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġcontains Sources ( source Set : ĠAndroid Source Set ): ĠBoolean Ċ } Ċ