package Ġru . s ant ae v . gradle _ metrics _ plugin . collector Ċ Ċ import Ġorg . gradle . Build Result Ċ import Ġorg . gradle . api . Task Ċ import Ġorg . gradle . api . execution . Task Execution Listener Ċ import Ġorg . gradle . api . tasks . Task State Ċ import Ġru . s ant ae v . gradle _ metrics _ plugin . api . Double Metric Ċ import Ġru . s ant ae v . gradle _ metrics _ plugin . api . Metric Processor Id Ċ import Ġru . s ant ae v . gradle _ metrics _ plugin . api . Metric Unit Ċ import Ġru . s ant ae v . gradle _ metrics _ plugin . api . collector . Base Metric Collector Ċ import Ġru . s ant ae v . gradle _ metrics _ plugin . utils . Build Listener Adapter Ċ import Ġru . s ant ae v . gradle _ metrics _ plugin . utils . logger Ċ Ċ @ Metric Processor Id (" Build Time ") Ċ class ĠBuild Time Metric Collector : ĠBase Metric Collector () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġlogger ( this ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġafter Init Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . add Build Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Time Calculator Listener Ġ{ Ġbuild Time Millis Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollect Build Time ( build Time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcollect Build Time ( build Time Millis : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmetrics Store ?. add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDouble Metric ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠBUILD _ TIME _ METRIC _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġbuild Time Millis Ġ/ Ġ 1 0 0 0 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= ĠMetric Unit . Seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBUILD _ TIME _ METRIC _ ID Ġ= Ġ" Build Time " ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ private Ġclass ĠBuild Time Calculator Listener ( ĊĠĠĠ Ġprivate Ġval Ġon Build Finished : Ġ( build Time Millis : ĠLong ) Ġ-> ĠUnit Ċ ): ĠBuild Listener Adapter (), ĠTask Execution Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbuild StartTime Ġ= Ġ 0 L ĊĠĠĠ Ġprivate Ġvar Ġis Build Started Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Finished ( result : ĠBuild Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuild Time Ġ= ĠSystem . currentTimeMillis () Ġ- Ġbuild StartTime ĊĠĠĠĠĠĠĠ Ġon Build Finished ( build Time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore Execute ( task : ĠTask ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Build Started ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Build Started Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbefore First Task Execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Execute ( task : ĠTask , Ġstate : ĠTask State ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbefore First Task Execute () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild StartTime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠ Ġ} Ċ }