package Ġk ara ; Ċ Ċ import Ġorg . less css . Less Compiler Ċ import Ġjava . io . InputStream Ċ import Ġorg . less css .* Ċ Ċ private Ġval Ġcompiler Ġ= ĠLess Compiler () Ċ Ċ public Ġopen Ġclass ĠEmbedded Less Resource ( val Ġname : ĠString ) Ġ: ĠCached Resource () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcontent ( context : ĠAction Context ): ĠResource Content Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcss Ġ= Ġcompiler . compile ( Less Source ( Classpath Resource ( name , Ġcontext ))) Ġ?: Ġerror ("$ name Ġcan 't Ġbe Ġcompiled ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= Ġ Ġcss . toByteArray (" UTF - 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResource Content (" text / css ", ĠSystem . currentTimeMillis (), Ġbytes . size ) Ġ{ Ġbytes . inputStream Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ public Ġclass ĠClass path Resource ( val Ġpath : ĠString , Ġval Ġcontext : ĠAction Context ): Ġorg . less css . Resource Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexists (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . resource Stream ( path ) Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlast Modified (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSystem . currentTimeMillis () Ġ// ĠTODO ?? ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget InputStream (): ĠInputStream ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . resource Stream ( path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Relative ( name : ĠString ?): Ġorg . less css . Resource ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= Ġpath . split ('/') ĊĠĠĠĠĠĠĠ Ġreturn ĠClass path Resource ("${ components . take ( components . size Ġ- Ġ 1 ). join ("/") }/ $ name ", Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpath . split ('/ '). last () ĊĠĠĠ Ġ} Ċ } ĊĊ