/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠD ones ky , ĠLLC Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġblock y Ċ Ċ import Ġblock y . compiler . Compiler Ċ import Ġjava . io . InputStream Ċ import Ġjava . nio . file . Path Ċ Ċ interface ĠBlock y Loader Ġ{ ĊĊĠĠĠ Ġfun Ġload ( path : ĠPath ): ĠBlock y Template Ċ } Ċ Ċ abstract Ġclass ĠBlock y Compiler Loader Ġ: ĠBlock y Loader Ġ{ ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġopen InputStream ( path : ĠPath ): ĠInputStream ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġcompile ( path : ĠPath , Ġstream : ĠInputStream ) Ġ= ĠCompiler . compile ( path , Ġstream ) ĊĊĠĠĠ Ġoverride Ġfun Ġload ( path : ĠPath ) Ġ= Ġopen InputStream ( path ). use Ġ{ Ġcompile ( path , Ġit ) Ġ} Ċ }