package Ġcom . aut onomous apps . tasks Ċ Ċ import Ġcom . aut onomous apps . TASK _ GROUP _ DEP _ INTERNAL Ċ import Ġcom . aut onomous apps . internal . AN NOT ATION _ PROCESS OR _ PATH Ċ import Ġcom . aut onomous apps . internal . utils . get And Delete Ċ import Ġcom . aut onomous apps . internal . utils . toJson Ċ import Ġcom . aut onomous apps . internal . utils . to Pretty String Ċ import Ġcom . aut onomous apps . model . inter medi ates . Annotation Processor Dependency Ċ import Ġcom . aut onomous apps . services . InMemory Cache Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . artifacts . Artifact Collection Ċ import Ġorg . gradle . api . artifacts . result . Resolved Artifact Result Ċ import Ġorg . gradle . api . file . File Collection Ċ import Ġorg . gradle . api . file . Regular File Property Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . tasks .* Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . File Ċ import Ġjava . io . Writer Ċ import Ġjava . net . URL Ċ import Ġjava . net . URL ClassLoader Ċ import Ġjava . util . Locale Ċ import Ġjava . util . zip . Zip File Ċ import Ġjavax . annotation . processing . F iler Ċ import Ġjavax . annotation . processing . Mess ager Ċ import Ġjavax . annotation . processing . Processing Environment Ċ import Ġjavax . annotation . processing . Processor Ċ import Ġjavax . lang . model . Source Version Ċ import Ġjavax . lang . model . element .* Ċ import Ġjavax . lang . model . type .* Ċ import Ġjavax . lang . model . util . Elements Ċ import Ġjavax . lang . model . util . Types Ċ import Ġjavax . naming . Operation NotSupportedException Ċ import Ġjavax . tools . Diagnostic Ċ import Ġjavax . tools . FileObject Ċ import Ġjavax . tools . Java FileManager Ċ import Ġjavax . tools . Java FileObject Ċ Ċ /** Ċ Ġ* ĠSk etch Ġof Ġproc Ġalgo Ċ Ġ* Ġ 1 . ĠG ather Ġall ĠAP s Ġby Ġlooking Ġat Ġboth Ġk apt < Variant > Ġand Ġannotation Processor < Variant > Ċ Ġ* ĠĠĠ Ġconfigurations Ċ Ġ* Ġ 2 . ĠCreate Ġa ĠClassLoader Ġwith Ġall Ġof Ġthe Ġresult ant Ġj ars Ġon Ġthe Ġclasspath Ċ Ġ* Ġ 3 . ĠLook Ġthrough Ġeach Ġjar Ġfor ĠMETA - INF / services / javax . annotation . processing . Processor , Ġparsing Ċ Ġ* ĠĠĠ Ġthat Ġfile Ġfor Ġany ĠAP s Ġin Ġthe Ġjar . Ċ Ġ* Ġ 4 . ĠFor Ġeach ĠAP Ġfound Ġin Ġstep Ġ 3 , Ġcreate Ġinstance Ġvia Ġreflection Ġand Ġinvoke Ċ Ġ* ĠĠĠ Ġ` get Supported Annotation Types ()`. ĠIt Ġmay Ġalso Ġbe Ġnecessary Ġto Ġinvoke Ġ` init ()` Ġbefore hand . Ċ Ġ* Ġ 5 . ĠAssoci ate Ġeach Ġsupported Ġannotation Ġtype Ġwith Ġits Ġprocessor . Ċ Ġ* Ġ 6 . ĠParse Ġbytecode Ġfor Ġpresence Ġof Ġannotation Ġtypes Ċ Ġ*/ Ċ @ Cache able Task Ċ abstract Ġclass ĠFind Declared Pro cs Task Ġ: ĠDefault Task () Ġ{ ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġgroup Ġ= ĠTASK _ GROUP _ DEP _ INTERNAL ĊĠĠĠ Ġdescription Ġ= Ġ" Produces Ġa Ġreport Ġof Ġall Ġsupported Ġannotation Ġtypes Ġand Ġtheir Ġannotation Ġprocessors " ĊĠ Ġ} ĊĊĠ Ġprivate Ġvar Ġk apt Artifacts : ĠArtifact Collection ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġannotation Processor Artifacts : ĠArtifact Collection ? Ġ= Ġnull ĊĊĠ Ġfun Ġset K apt Artifacts ( artifacts : ĠArtifact Collection ) Ġ{ ĊĠĠĠ Ġk apt Artifacts Ġ= Ġartifacts ĊĠ Ġ} ĊĊĠ Ġfun Ġset Annotation Processor Artifacts ( artifacts : ĠArtifact Collection ) Ġ{ ĊĠĠĠ Ġannotation Processor Artifacts Ġ= Ġartifacts ĊĠ Ġ} ĊĊĠ Ġ@ Optional ĊĠ Ġ@ Classpath ĊĠ Ġfun Ġget K apt Artifact Files (): ĠFile Collection ? Ġ= Ġk apt Artifacts ?. artifact Files ĊĊĠ Ġ@ Optional ĊĠ Ġ@ Classpath ĊĠ Ġfun Ġget Annotation Processor Artifact Files (): ĠFile Collection ? Ġ= Ġannotation Processor Artifacts ?. artifact Files ĊĊĠ Ġ@ get : OutputFile ĊĠ Ġabstract Ġval Ġoutput : ĠRegular File Property ĊĊĠ Ġ@ get : OutputFile ĊĠ Ġabstract Ġval Ġoutput Pretty : ĠRegular File Property ĊĊĠ Ġ@ get : Internal ĊĠ Ġabstract Ġval Ġin Memory Cache Provider : ĠProperty < InMemory Cache > ĊĊĠ Ġprivate Ġval Ġin Memory Cache Ġby Ġlazy Ġ{ Ġin Memory Cache Provider . get () Ġ} ĊĊĠ Ġ@ Task Action Ġfun Ġaction () Ġ{ ĊĠĠĠ Ġval ĠoutputFile Ġ= Ġoutput . get And Delete () ĊĠĠĠ Ġval Ġoutput Pretty File Ġ= Ġoutput Pretty . get And Delete () ĊĊĠĠĠ Ġval Ġk apt ClassLoader Ġ= Ġnew ClassLoader (" for - k apt ", Ġget K apt Artifact Files ()) ĊĠĠĠ Ġval Ġap ClassLoader Ġ= Ġnew ClassLoader (" for - annotation - processor ", Ġget Annotation Processor Artifact Files ()) ĊĊĠĠĠ Ġval Ġk apt Pro cs Ġ= Ġpro cs ( k apt Artifacts , Ġk apt ClassLoader ) ĊĠĠĠ Ġval Ġannotation Processor Pro cs Ġ= Ġpro cs ( annotation Processor Artifacts , Ġap ClassLoader ) ĊĠĠĠ Ġval Ġpro cs Ġ= Ġk apt Pro cs Ġ+ Ġannotation Processor Pro cs ĊĊĠĠĠ ĠoutputFile . write Text ( procs . toJson ()) ĊĠĠĠ Ġoutput Pretty File . write Text ( procs . to Pretty String ()) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġnew ClassLoader ( name : ĠString , Ġfiles : ĠFile Collection ?): ĠClassLoader ? Ġ{ ĊĠĠĠ Ġval Ġurls Ġ= Ġfiles ?. toList ()?. map Ġ{ Ġit . to URI (). to URL () Ġ} ?. to Typed Array () ĊĠĠĠ Ġreturn Ġurls ?. let Ġ{ ĠFirst ClassLoader ( name , Ġurls , Ġjava Class . class Loader ) Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġpro cs ( artifacts : ĠArtifact Collection ?, Ġclass Loader : ĠClassLoader ?): ĠList < Annotation Processor Dependency > Ġ{ ĊĠĠĠ Ġif Ġ( artifacts Ġ== Ġnull ) Ġreturn Ġempty List () ĊĊĠĠĠ Ġreturn Ġartifacts . map NotNull Ġ{ Ġartifact Ġ-> ĊĠĠĠĠĠ Ġval Ġpro cs Ġ= Ġfind Pro cs ( artifact . file ) ĊĠĠĠĠĠ Ġif Ġ( procs Ġ!= Ġnull ) Ġartifact Ġto Ġpro cs Ġelse Ġnull ĊĠĠĠ Ġ}. flatMap Ġ{ Ġ( artifact , Ġpro cs ) Ġ-> ĊĠĠĠĠĠ Ġpro cs . map NotNull Ġ{ Ġproc Name Ġ-> ĊĠĠĠĠĠĠĠ Ġin Memory Cache . proc ( proc Name ) Ġ?: Ġproc For ( artifact , Ġproc Name , Ġclass Loader !! ). also Ġ{ Ġproc Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġproc ?. let Ġ{ Ġin Memory Cache . procs ( proc Name , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġprivate Ġfun Ġproc For ( ĊĠĠĠ Ġartifact : ĠResolved Artifact Result , ĊĠĠĠ Ġproc Name : ĠString , ĊĠĠĠ Ġclass Loader : ĠClassLoader ĊĠ Ġ): ĠAnnotation Processor Dependency ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠ Ġval Ġproc Class Ġ= Ġclass Loader . load Class ( proc Name ) Ġas ĠClass < out ĠProcessor > ĊĠĠĠĠĠ Ġval Ġtypes Ġ= Ġget Supported Annotation Types ( proc Class ) ĊĠĠĠĠĠ Ġtypes ?. let Ġ{ ĠAnnotation Processor Dependency ( proc Name , Ġit , Ġartifact . id . component Identifier ) Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ(_ : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠ Ġlogger . warn (" Could Ġnot Ġload Ġ$ proc Name Ġfrom Ġclass Ġloader ") ĊĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġfind Pro cs ( file : ĠFile ): ĠList < String >? Ġ{ ĊĠĠĠ Ġval Ġzip Ġ= ĠZip File ( file ) ĊĠĠĠ Ġreturn Ġzip . getEntry ( AN NOT ATION _ PROCESS OR _ PATH )?. let Ġ{ ĊĠĠĠĠĠ Ġzip . getInputStream ( it ). buffered Reader (). use ( BufferedReader :: read Lines ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġ< T Ġ: ĠProcessor > Ġget Supported Annotation Types ( proc Class : ĠClass < T >): ĠSet < String >? Ġ= Ġtry Ġ{ ĊĠĠĠ Ġval Ġproc Ġ= Ġproc Class . getDeclared Constructor (). newInstance () ĊĠĠĠ Ġlogger . debug (" Trying Ġto Ġinitialize Ġannotation Ġprocessor Ġwith Ġtype Ġ${ proc . java Class . name }") ĊĠĠĠ Ġtry Init ( proc ) ĊĠĠĠ Ġproc . supported Annotation Types ĊĠ Ġ} Ġcatch Ġ(_ : ĠThrowable ) Ġ{ ĊĠĠĠ Ġlogger . warn (" Could Ġnot Ġreflect ively Ġaccess Ġprocessor Ġclass Ġ${ proc Class . name }") ĊĠĠĠ Ġnull ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġ< T Ġ: ĠProcessor > Ġtry Init ( proc : ĠT ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġproc . init ( Stub Processing Environment ()) ĊĠĠĠ Ġ} Ġcatch Ġ(_ : ĠThrowable ) Ġ{ ĊĠĠĠĠĠ Ġlogger . debug (" Could Ġnot Ġinitialize Ġ${ proc . java Class . name }. ĠMay Ġnot Ġbe Ġable Ġto Ġget Ġsupported Ġannotation Ġtypes .") ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠStub Processing Environment Ġ: ĠProcessing Environment Ġ{ ĊĠ Ġoverride Ġfun Ġget Element Utils (): ĠElements Ġ= ĠStub Elements () ĊĊĠ Ġoverride Ġfun ĠgetType Utils (): ĠTypes Ġ= ĠStub Types () ĊĊĠ Ġoverride Ġfun Ġget Mess ager (): ĠMess ager Ġ= ĠStub Mess ager () ĊĊĠ Ġoverride Ġfun Ġget Locale (): ĠLocale Ġ{ ĊĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Source Version (): ĠSource Version Ġ= ĠSource Version . latest Supported () ĊĊĠ Ġoverride Ġfun Ġget Options (): ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of () ĊĊĠ Ġoverride Ġfun Ġget F iler (): ĠF iler Ġ= ĠStub F iler () ĊĊĠ Ġprivate Ġclass ĠStub Elements Ġ: ĠElements Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġhide s ( h ider : ĠElement ?, Ġhidden : ĠElement ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġoverrides ( over r ider : ĠExec utable Element ?, Ġoverridden : ĠExec utable Element ?, Ġtype : ĠType Element ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetName ( cs : ĠCharSequence ?): ĠName Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Functional Interface ( type : ĠType Element ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Element Values With Defaults ( a : ĠAnnotation Mirror ?): ĠMutable Map < out ĠExec utable Element , Ġout ĠAnnotation Value > Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Binary Name ( type : ĠType Element ?): ĠName Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Doc Comment ( e : ĠElement ?): ĠString Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Deprecated ( e : ĠElement ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Members ( type : ĠType Element ?): ĠMutable List < out ĠElement > Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprint Elements ( w : ĠWriter ?, Ġvar arg Ġelements : ĠElement ?) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Package Element ( name : ĠCharSequence ?): ĠPackage Element Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetType Element ( name : ĠCharSequence ?): ĠType Element Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Constant Expression ( value : ĠAny ?): ĠString Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Package Of ( type : ĠElement ?): ĠPackage Element Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll Annotation Mir rors ( e : ĠElement ?): ĠMutable List < out ĠAnnotation Mirror > Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠStub Mess ager Ġ: ĠMess ager Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġprint Message ( kind : ĠDiagnostic . Kind ?, Ġmsg : ĠCharSequence ?) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprint Message ( kind : ĠDiagnostic . Kind ?, Ġmsg : ĠCharSequence ?, Ġe : ĠElement ?) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprint Message ( kind : ĠDiagnostic . Kind ?, Ġmsg : ĠCharSequence ?, Ġe : ĠElement ?, Ġa : ĠAnnotation Mirror ?) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġprint Message ( ĊĠĠĠĠĠ Ġkind : ĠDiagnostic . Kind ?, ĊĠĠĠĠĠ Ġmsg : ĠCharSequence ?, ĊĠĠĠĠĠ Ġe : ĠElement ?, ĊĠĠĠĠĠ Ġa : ĠAnnotation Mirror ?, ĊĠĠĠĠĠ Ġv : ĠAnnotation Value ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠStub F iler Ġ: ĠF iler Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate SourceFile ( name : ĠCharSequence ?, Ġvar arg Ġorigin ating Elements : ĠElement ?): ĠJava FileObject Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Class File ( name : ĠCharSequence ?, Ġvar arg Ġorigin ating Elements : ĠElement ?): ĠJava FileObject Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetResource ( ĊĠĠĠĠĠ Ġlocation : ĠJava FileManager . Location ?, ĊĠĠĠĠĠ Ġpkg : ĠCharSequence ?, ĊĠĠĠĠĠ Ġrelative Name : ĠCharSequence ? ĊĠĠĠ Ġ): ĠFile Object Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Resource ( ĊĠĠĠĠĠ Ġlocation : ĠJava FileManager . Location ?, ĊĠĠĠĠĠ Ġpkg : ĠCharSequence ?, ĊĠĠĠĠĠ Ġrelative Name : ĠCharSequence ?, ĊĠĠĠĠĠ Ġvar arg Ġorigin ating Elements : ĠElement ? ĊĠĠĠ Ġ): ĠFile Object Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġclass ĠStub Types Ġ: ĠTypes Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcontains ( t 1 : ĠType Mirror ?, Ġt 2 : ĠType Mirror ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbox ed Class ( p : ĠPrimitive Type ?): ĠType Element Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ArrayType ( component Type : ĠType Mirror ?): ĠArray Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Declared Type ( type Elem : ĠType Element ?, Ġvar arg Ġtype Args : ĠType Mirror ?): ĠDecl ared Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Declared Type ( ĊĠĠĠĠĠ Ġcontaining : ĠDecl ared Type ?, ĊĠĠĠĠĠ Ġtype Elem : ĠType Element ?, ĊĠĠĠĠĠ Ġvar arg Ġtype Args : ĠType Mirror ? ĊĠĠĠ Ġ): ĠDecl ared Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Assignable ( t 1 : ĠType Mirror ?, Ġt 2 : ĠType Mirror ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġas Member Of ( containing : ĠDecl ared Type ?, Ġelement : ĠElement ?): ĠType Mirror Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Null Type (): ĠNull Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Wildcard Type ( extends Bound : ĠType Mirror ?, Ġsuper Bound : ĠType Mirror ?): ĠW ildcard Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun boxed Type ( t : ĠType Mirror ?): ĠPrimitive Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Same Type ( t 1 : ĠType Mirror ?, Ġt 2 : ĠType Mirror ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Primitive Type ( kind : ĠType Kind ?): ĠPrimitive Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget No Type ( kind : ĠType Kind ?): ĠNo Type Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Sub signature ( m 1 : ĠExec utable Type ?, Ġm 2 : ĠExec utable Type ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcapture ( t : ĠType Mirror ?): ĠType Mirror Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġer asure ( t : ĠType Mirror ?): ĠType Mirror Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġas Element ( t : ĠType Mirror ?): ĠElement Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdirect Sup ert ypes ( t : ĠType Mirror ?): ĠMutable List < out ĠType Mirror > Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Subtype ( t 1 : ĠType Mirror ?, Ġt 2 : ĠType Mirror ?): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġthrow ĠOperation NotSupportedException () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠIn vert Ġnormal ĠJava Ġrules Ġand Ġtry Ġto Ġload Ġclasses Ġfrom Ġthis Ġclass loader Ġbefore Ġchecking Ġthe Ġparent . Ċ Ġ* Ċ Ġ* ĠThis Ġresolves Ġ[ https :// github . com / aut onomous apps / dependency - analysis - android - gradle - plugin / issues / 4 7 9 ]. Ċ Ġ*/ Ċ private Ġclass ĠFirst ClassLoader ( ĊĠ Ġname : ĠString , ĊĠ Ġurls : ĠArray < URL >, ĊĠ Ġparent : ĠClassLoader Ċ ) Ġ: ĠURL ClassLoader ( name , Ġurls , Ġparent ) Ġ{ ĊĠ Ġoverride Ġfun Ġload Class ( name : ĠString ): ĠClass < *> Ġ= Ġtry Ġ{ ĊĠĠĠ Ġfind Loaded Class ( name ) Ġ?: Ġfind Class ( name ) ĊĠ Ġ} Ġcatch Ġ(_ : ĠClass NotFoundException ) Ġ{ ĊĠĠĠ Ġsuper . load Class ( name ) ĊĠ Ġ} Ċ } Ċ