package Ġcom . ti are bal bi . op ala . comp ilers . kotlin Ċ Ċ import Ġcom . ti are bal bi . op ala . comp ilers . Comp il able Type Ċ import Ġcom . ti are bal bi . op ala . common . FileUtils Ċ import Ġcom . ti are bal bi . op ala . models . compiler . Configuration Ċ import Ġcom . ti are bal bi . op ala . models . structure . Class Ċ import Ġjava . io . File Ċ Ċ class ĠClass Compiler ( private Ġval Ġclazz : ĠClass ) Ġ: ĠComp il able Type , ĠKotlin Lang () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcompile ( configuration : ĠConfiguration ): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclass Content Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġ${ clazz . packageName ()} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass Ġ${ this . clazz . fileName ()} Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġpackage Folder Ġ= Ġ"${ configuration . distribution Folder }/${ super . main Package Folder () }/${ clazz . folder () }" ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġ"$ package Folder /${ clazz . fileName ()}. kt " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( FileUtils . not Exists ( package Folder )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFileUtils . create Directories ( package Folder ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠFileUtils . delete IfExists ( path ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFileUtils . create File ( path , Ġclass Content ) ĊĠĠĠ Ġ} Ċ } Ċ