package Ġcom . jak ew h art on . r xb ind ing . project Ċ Ċ import Ġcom . jak ew h art on . r xb ind ing . project . conversion . convertTo Kotlin File Ċ import Ġorg . gradle . api . tasks . Source Task Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġorg . gradle . api . tasks . incremental . Incremental Task Inputs Ċ import Ġjava . io . File Ċ Ċ private Ġval ĠSL ASH Ġ= ĠFile . separator Ċ Ċ open Ġclass ĠKotlin Gen Task Ġ: ĠSource Task () Ġ{ ĊĊĠ Ġ@ Task Action ĊĠ Ġ@ Suppress (" unused ") ĊĠ Ġfun Ġgenerate (@ Suppress (" UNUSED _ PARAMETER ") Ġinputs : ĠIncrement al Task Inputs ) Ġ{ ĊĠĠĠ Ġremove Old Files () ĊĠĠĠ Ġconvert Source () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġremove Old Files () Ġ{ ĊĠĠĠ ĠFile ("${ project . project Dir }- kotlin ${ SL ASH } src ${ SL ASH } main ${ SL ASH } kotlin ") ĊĠĠĠĠĠĠĠ Ġ. walk Top Down () ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isFile Ġ} ĊĠĠĠĠĠĠĠ Ġ. filter Not Ġ{ Ġit . absolute Path . contains (" internal ") Ġ} ĊĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġit . delete () Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġconvert Source () Ġ{ ĊĠĠĠ Ġget Source (). forEach Ġ{ ĊĠĠĠĠĠ Ġit . convertTo Kotlin File () ĊĠĠĠĠĠĠĠĠĠ Ġ. writeTo ( it . get Kotlin Output Dir ()) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠFile . get Kotlin Output Dir () Ġ= ĊĠĠĠĠĠ ĠFile ( parent . replace (" java ", Ġ" kotlin ") ĊĠĠĠĠĠĠĠĠĠ Ġ. replace ("${ SL ASH } src ", Ġ"- kotlin ${ SL ASH } src ") ĊĠĠĠĠĠĠĠĠĠ Ġ. substring Before (" com ${ SL ASH } jak ew h art on ")) Ċ } Ċ