package Ġorg . jetbrains . ref le kt . plugin . utils Ċ Ċ import Ġorg . jetbrains . ref le kt . plugin . utils . Util . init Message Collector Ċ import Ġorg . jetbrains . ref le kt . plugin . utils . Util . log Ċ import Ġorg . jetbrains . ref le kt . plugin . utils . Util . message Collector Ċ Ċ import Ġorg . jetbrains . kotlin . cli . common . messages . Message Collector Ċ import Ġorg . jetbrains . kotlin . config . Compiler Configuration Ċ Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠParses Ġand Ġstores Ġthe Ġcommand Ġline Ġarguments Ġfrom Ġthe Ġplugin . Ċ Ġ* Ċ Ġ* Ġ@ param Ġconfiguration Ġthe Ġcurrent ĠKotlin Ġcompiler Ġconfiguration Ġor Ġnull Ċ Ġ* Ġ@ param Ġlog FilePath Ġpath Ġto Ġthe Ġfile Ġwith Ġlogs . ĠBy Ġdefault Ġis Ġpath To Kotlin / daemon / ref le kt - log . log Ċ Ġ* Ġ@ param Ġis Test Configuration Ġindicates Ġif Ġthe Ġplugin Ġis Ġused Ġin Ġtests Ċ Ġ* Ċ Ġ* Ġ@ property Ġenabled Ġindicates Ġif Ġthe Ġplugin Ġis Ġenabled Ċ Ġ* Ġ@ property Ġref le kt Meta Files From Libraries Ġstores Ġthe Ġabsolute Ġfile 's Ġpath Ġfrom Ġthe Ġlibrary Ġwith ĠRef le kt Ġmeta Ġinformation Ċ Ġ* Ġ@ property Ġoutput Dir Ġstores Ġa Ġrelative Ġpath Ġfor Ġgenerated Ġfiles Ġ( e . g . ĠRef le kt Impl . kt ) Ċ Ġ* Ġ@ property Ġto Save Metadata Ġindicates Ġwhether Ġto Ġsave ĠRef le kt Ġusage s Ġinto ĠMETA - INF Ċ Ġ* Ġ@ property Ġref le kt Meta File RelativePath Ġstores Ġthe Ġrelative Ġpath Ġto Ġthe ĠRef le kt Meta Ġfile Ċ Ġ* Ġ Ġin Ġthe Ġresources ' Ġdirectory Ġof Ġthe Ġprojects ' Ġsrc Ġfolder Ċ Ġ* Ġ@ property Ġdependency J ars Ġstores Ġthe Ġabsolute Ċ Ġ* Ġ Ġpath Ġof Ġlibraries Ġj ars Ġincluded Ġin Ġthe Ġcurrent Ġproject Ġas Ġa Ġcompile Classpath Ġconfiguration Ċ Ġ* Ġ@ property Ġmessage Collector Ġ[ Message Collector ] Ġfor Ġlogs Ġor Ġnull Ċ Ġ*/ Ċ @ Suppress (" K DOC _ NO _ CLASS _ BODY _ PROPERTIES _ IN _ HEADER ", Ġ" K DOC _ EXTRA _ PROPERTY ") Ċ class ĠPlugin Config ( ĊĠĠĠ Ġconfiguration : ĠCompiler Configuration ?, ĊĠĠĠ Ġlog FilePath : ĠString Ġ= Ġ" ref le kt - log . log ", ĊĠĠĠ Ġis Test Configuration : ĠBoolean Ġ= Ġfalse , Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġenabled Ġ= Ġis Test Configuration ĊĠĠĠ Ġvar Ġref le kt Meta Files From Libraries : ĠSet < File > Ġ= Ġempty Set () ĊĠĠĠ Ġvar Ġoutput Dir : ĠFile ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġto Save Metadata Ġ= Ġfalse ĊĠĠĠ Ġvar Ġref le kt Meta File RelativePath : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdependency J ars : ĠList < File > Ġ= Ġempty List () ĊĊĠĠĠ Ġ// ĠTODO : Ġmake Ġ[ message Collector ] Ġavailable Ġfrom Ġany Ġpart Ġof Ġcode ĊĠĠĠ Ġvar Ġmessage Collector : ĠMessage Collector ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġconfiguration ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . init Message Collector ( log FilePath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Collector Ġ= Ġconfiguration . message Collector ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġconfiguration [ Keys . ENABLED ] Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Dir Ġ= Ġconfiguration [ Keys . OUTPUT _ DIR ] Ġ?: ĠFile (" src / main / kotlin - gen ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Save Metadata Ġ= Ġconfiguration [ Keys . TO _ SAVE _ METADATA ] Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref le kt Meta File RelativePath Ġ= Ġconfiguration [ Keys . REF LE KT _ META _ PATH ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( to Save Metadata Ġ&& Ġref le kt Meta File RelativePath Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" The Ġrelative Ġpath Ġro Ġthe ĠRef le kt Meta Ġfile Ġwas Ġnot Ġset , Ġbut Ġto Save Metadata Ġflag Ġis Ġ$ to Save Metadata ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependency J ars Ġ= Ġconfiguration [ Keys . DEPEND ENCY _ J ARS ] Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġref le kt Meta Files From Libraries Ġ= Ġconfiguration [ Keys . REF LE KT _ META _ FILES ]?. toSet () Ġ?: Ġempty Set () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Collector ?. log Configuration () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġthe Ġpretty Ġstring Ġof Ġthe Ġcurrent Ġconfiguration . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ StringBuilder ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpretty String () Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġappend (" REF LE KT ĠCONFIG URATION :\ n ") ĊĠĠĠĠĠĠĠ Ġappend (" ENABLED : Ġ$ enabled \ n ") ĊĠĠĠĠĠĠĠ Ġappend (" REF LE KT ĠMETA ĠFILE S ĠFROM ĠLIB R ARIES : Ġ${ ref le kt Meta Files From Libraries . map Ġ{ Ġit . absolute Path Ġ}} \ n ") ĊĠĠĠĠĠĠĠ Ġappend (" OUTPUT ĠDIRECTORY : Ġ$ output Dir \ n ") ĊĠĠĠĠĠĠĠ Ġappend (" TO ĠSAVE ĠMET ADATA : Ġ$ to Save Metadata \ n ") ĊĠĠĠĠĠĠĠ Ġappend (" REF LE KT ĠMET ADATA ĠREL ATIVE ĠPATH : Ġ$ ref le kt Meta File RelativePath \ n ") ĊĠĠĠĠĠĠĠ Ġappend (" DEPEND ENCY ĠJ ARS : Ġ${ dependency J ars . map Ġ{ Ġit . absolute Path Ġ}} \ n ") ĊĠĠĠĠĠĠĠ Ġappend (" ________________________________ ________ ____ _\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilds Ġand Ġlogs Ġpretty Ġstring Ġof Ġthe Ġcurrent Ġconfiguration . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠMessage Collector . log Configuration () Ġ= Ġthis . log ( pretty String ()) Ċ } Ċ