// ĠCopyright Ġ 2 0 0 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . intellij . openapi . external System . statistics Ċ Ċ import Ġcom . intellij . internal . statistic . beans . Usage Descriptor Ċ import Ġcom . intellij . internal . statistic . service . f us . collect ors . Project Usage s Collector Ċ import Ġcom . intellij . openapi . external System . External System Module Property Manager Ċ import Ġcom . intellij . openapi . external System . service . execution . External System J dk Util Ċ import Ġcom . intellij . openapi . external System . util . External System Api Util Ċ import Ġcom . intellij . openapi . module . Module Manager Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . openapi . util . Version Ċ Ċ class ĠExternal System Usage s Collector Ġ: ĠProject Usage s Collector () Ġ{ ĊĠ Ġoverride Ġfun Ġget GroupId () Ġ= Ġ" build . tools " ĊĊĠ Ġoverride Ġfun Ġget Usage s ( project : ĠProject ): ĠSet < Usage Descriptor > Ġ{ ĊĠĠĠ Ġval Ġusage s Ġ= Ġmutable Set Of < Usage Descriptor >() ĊĠĠĠ Ġfor Ġ( manager Ġin ĠExternal System Api Util . getAll Managers ()) Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! manager . get Settings Provider (). ` fun `( project ). get Linked Projects Settings (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġusage s . add ( Usage Descriptor ( get An onym ized System Id ( manager . getSystem Id ()))) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠModule Manager . getInstance ( project ). modules . find Ġ{ ĠExternal System Module Property Manager . getInstance ( it ). is Maven ized () Ġ} ?. let Ġ{ ĊĠĠĠĠĠ Ġusage s . add ( Usage Descriptor (" Maven ")) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġusage s ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġget J RE Type Usage ( key : ĠString , Ġj re Name : ĠString ?): ĠUsage Descriptor Ġ{ ĊĠĠĠĠĠ Ġval Ġan onym ized Name Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġj re Name . isNull Or Blank () Ġ-> Ġ" empty " ĊĠĠĠĠĠĠĠ Ġj re Name Ġin ĠlistOf ( External System J dk Util . USE _ INTERNAL _ JAVA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExternal System J dk Util . USE _ PROJECT _ JDK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExternal System J dk Util . USE _ JAVA _ HOME ) Ġ-> Ġj re Name ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" custom " ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġreturn ĠUsage Descriptor ("$ key .$ anon ym ized Name ", Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget J RE Version Usage ( project : ĠProject , Ġkey : ĠString , Ġj re Name : ĠString ?): ĠUsage Descriptor Ġ{ ĊĠĠĠĠĠ Ġval Ġj dk Ġ= ĠExternal System J dk Util . get J dk ( project , Ġj re Name ) ĊĠĠĠĠĠ Ġval Ġversion String Ġ= ĊĠĠĠĠĠĠĠ Ġj dk ?. version String ?. let Ġ{ ĠVersion . parse Version ( it )?. let Ġ{ Ġparsed Ġ-> Ġ"${ parsed . major }.${ parsed . minor }" Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ?: Ġ" unknown " ĊĊĠĠĠĠĠ Ġreturn ĠUsage Descriptor ("$ key .$ version String ", Ġ 1 ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ