/* Ċ Ġ* Ġ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 . component Ċ Ċ import Ġcom . android . build . api . artifact . impl . Artifacts Impl Ċ import Ġcom . android . build . api . component . Component Identity Ċ import Ġcom . android . build . api . component . impl . Test Component Impl Ċ import Ġcom . android . build . api . instrumentation . Asm Class Visitor Factory Ċ import Ġcom . android . build . api . instrumentation . Frames Computation Mode Ċ import Ġcom . android . build . api . variant . Android Version Ċ import Ġcom . android . build . api . variant . impl . Variant Output List Ċ import Ġcom . android . build . api . variant . impl . Variant Impl Ċ import Ġcom . android . build . gradle . internal . core . Variant Dsl Info Ċ import Ġcom . android . build . gradle . internal . core . Variant Sources Ċ import Ġcom . android . build . gradle . internal . dependency . Variant Dependencies Ċ import Ġcom . android . build . gradle . internal . pipeline . Transform Manager Ċ import Ġcom . android . build . gradle . internal . publishing . Android Artifacts Ċ import Ġcom . android . build . gradle . internal . scope . Build Feature Values Ċ import Ġcom . android . build . gradle . internal . scope . Global Scope Ċ import Ġcom . android . build . gradle . internal . scope . Internal Artifact Type Ċ import Ġcom . android . build . gradle . internal . scope . Mutable Task Container Ċ import Ġcom . android . build . gradle . internal . scope . Variant Scope Ċ import Ġcom . android . build . gradle . internal . services . Task Creation Services Ċ import Ġcom . android . build . gradle . internal . variant . Base Variant Data Ċ import Ġcom . android . build . gradle . internal . variant . Variant Path Helper Ċ import Ġcom . android . builder . core . Variant Type Ċ import Ġcom . android . builder . model . ApiVersion Ċ import Ġcom . google . common . collect . Immutable Set Ċ import Ġorg . gradle . api . file . Configurable File Tree Ċ import Ġorg . gradle . api . file . Directory Ċ import Ġorg . gradle . api . file . File Collection Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . provider . Provider Ċ Ċ /** Ċ Ġ* ĠBase Ġof Ġthe Ġinterfaces Ġused Ġinternally Ġto Ġaccess Ġ* Properties Impl Ġobject . Ċ Ġ* Ċ Ġ* ĠThis Ġallows Ġa Ġgraph Ġhierarchy Ġrather Ġthan Ġa Ġstrict Ġtree , Ġin Ġorder Ġto Ġhave Ġmultiple Ċ Ġ* Ġsup ertype Ġand Ġmake Ġsome Ġtasks Ġreceive Ġa Ġgeneric Ġtype Ġthat Ġdoes Ġnot Ġfit Ġthe Ġactual Ċ Ġ* Ġimplementation Ġhierarchy Ġ( see Ġfor Ġinstance ĠA pk Creation Config ) Ċ Ġ*/ Ċ interface ĠComponent Creation Config Ġ: ĠComponent Identity Ġ{ ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠBAS IC ĠINFO ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġval Ġdir Name : ĠString ĊĠĠĠ Ġval Ġbase Name : ĠString ĊĠĠĠ Ġval Ġvariant Type : ĠVariant Type ĊĠĠĠ Ġval Ġdescription : ĠString ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠN EE DED ĠBY ĠALL ĠCOMPONENT S ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġ// Ġneeded Ġby Ġresource Ġcompilation / link ĊĠĠĠ Ġval Ġapplication Id : ĠProvider < String > ĊĠĠĠ Ġval Ġnamespace : ĠProvider < String > ĊĠĠĠ Ġval Ġresource Configurations : ĠImmutable Set < String > ĊĠĠĠ Ġval Ġis Pre compile Dependencies Resources Enabled : ĠBoolean ĊĠĠĠ Ġval Ġasm ApiVersion : ĠInt ĊĠĠĠ Ġval Ġasm Frames Computation Mode : ĠFrame s Computation Mode ĊĠĠĠ Ġval Ġregistered Project Classes Visitor s : ĠList < Asm Class Visitor Factory <* >> ĊĠĠĠ Ġval Ġregistered Dependencies Classes Visitor s : ĠList < Asm Class Visitor Factory <* >> ĊĠĠĠ Ġval Ġall Project Classes Post Asm Instrumentation : ĠFile Collection ĊĠĠĠ Ġval Ġproject Classes Are Instrument ed : ĠBoolean ĊĠĠĠ Ġval Ġdependencies Classes Are Instrument ed : ĠBoolean ĊĠĠĠ Ġval Ġdebug gable : ĠBoolean ĊĠĠĠ Ġval Ġpseudo Locales Enabled : ĠProperty < Boolean > ĊĠĠĠ Ġval Ġandroid Resources Enabled : ĠBoolean ĊĊĠĠĠ Ġval Ġmin Sdk Version : ĠAndroid Version ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġ// ĠTODO Ġfigure Ġout Ġwhether Ġthese Ġproperties Ġare Ġneeded Ġby Ġall ĊĠĠĠ Ġ// ĠTODO Ġ: Ġremove Ġas Ġit Ġis Ġnow Ġin ĠVariant . ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġval Ġoutputs : ĠVariant Output List ĊĠĠĠ Ġval Ġmanifest Artifact Type : ĠInternal Artifact Type < Directory > ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠINTERNAL ĠDE LEG ATES ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġval Ġbuild Features : ĠBuild Feature Values ĊĠĠĠ Ġval Ġvariant Scope : ĠVariant Scope ĊĠĠĠ Ġval Ġvariant Dsl Info : ĠVariant Dsl Info < *> ĊĠĠĠ Ġval Ġvariant Sources : ĠVariant Sources ĊĠĠĠ Ġval Ġvariant Dependencies : ĠVariant Dependencies ĊĠĠĠ Ġval Ġartifacts : ĠArtifact s Impl ĊĠĠĠ Ġval Ġtask Container : ĠMutable Task Container ĊĠĠĠ Ġval Ġtransform Manager : ĠTransform Manager ĊĠĠĠ Ġval Ġpaths : ĠVariant Path Helper ĊĠĠĠ Ġval Ġservices : ĠTask Creation Services ĊĊĠĠĠ Ġ@ Deprecated (" Do Ġnot Ġuse Ġif Ġyou Ġcan Ġavoid Ġit . ĠCheck Ġif Ġservices Ġhas Ġwhat Ġyou Ġneed ") ĊĠĠĠ Ġval Ġglobal Scope : ĠGlobal Scope ĊĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĠĠĠ Ġ// ĠINTERNAL ĠHEL PER S ĊĠĠĠ Ġ// Ġ-------------------------------------------------------------------------------- ------------- ĊĊĠĠĠ Ġfun Ġcompute Task Name ( prefix : ĠString , Ġsuffix : ĠString Ġ= Ġ"") : ĠString ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġtested Ġvariant . ĠThis Ġis Ġnull Ġfor Ġ[ Variant Impl ] Ġinstances ĊĠĠĠĠ Ġ* ĊĊĠĠĠĠ Ġ* ĠThis Ġdecl ares Ġis Ġagain , Ġeven Ġthough Ġthe Ġpublic Ġinterfaces Ġonly Ġhave Ġit Ġvia ĊĠĠĠĠ Ġ* Ġ[ Test Component Properties ]. ĠThis Ġis Ġto Ġfacilitate Ġplaces Ġwhere Ġone Ġcannot Ġuse ĊĠĠĠĠ Ġ* Ġ[ Test Component Impl ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġsee Ġ[ on Tested Config ] Ġfor Ġa Ġutility Ġfunction Ġhelping Ġdeal Ġwith Ġnull ability ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġtested Config : ĠVariant Creation Config ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRuns Ġan Ġaction Ġon Ġthe Ġtested Ġvariant Ġand Ġreturn Ġthe Ġresults Ġof Ġthe Ġaction . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġif Ġthere Ġis Ġno Ġtested Ġvariant Ġthis Ġdoes Ġnothing Ġand Ġreturns Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġon Tested Config ( action : Ġ( Variant Creation Config ) Ġ-> ĠT ? Ġ): ĠT ? ĊĊĠĠĠ Ġ// ĠTODO Ġ: ĠRemove ĠBase Variant Data . ĊĠĠĠ Ġval Ġvariant Data : ĠBase Variant Data ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġcompile Ġclasspath Ġfor Ġcompiling Ġsources Ġin Ġthis Ġcomponent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Java Classpath ( ĊĠĠĠĠĠĠĠ Ġconfig Type : ĠAndroid Artifacts . Cons umed Config Type , ĊĠĠĠĠĠĠĠ Ġclasses Type : ĠAndroid Artifacts . Artifact Type , ĊĠĠĠĠĠĠĠ Ġgenerated Byte code Key : ĠAny ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠFile Collection ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġlist Ġof Ġfolders Ġcontaining Ġcompil able Ġsource Ġfiles . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġjava Sources : ĠList < Configurable File Tree > ĊĊĠĠĠ Ġval Ġneeds Main Dex List For Bundle : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfalse ĊĊĠĠĠ Ġfun Ġuse Resource Shrink er (): ĠBoolean ĊĊĠĠĠ Ġfun Ġconfigure And Lock Asm Classes Visitor s ( object Factory : ĠObject Factory ) ĊĊĠĠĠ Ġfun Ġget Dependencies Classes J ars Post Asm Instrumentation ( scope : ĠAndroid Artifacts . Artifact Scope ): ĠFile Collection ĊĊĠĠĠ Ġval Ġpackage J aco co Runtime : ĠBoolean Ċ } Ċ