package Ġcom . air back . template Ċ Ċ import Ġcom . air back . core . air back Exception Ċ import Ġcom . air back . core . utils . FileUtils Ċ import Ġfre emark er . cache . Class Template Loader Ċ import Ġfre emark er . cache . File Template Loader Ċ import Ġfre emark er . cache . Multi Template Loader Ċ import Ġfre emark er . cache . Template Loader Ċ import Ġfre emark er . template . Configuration Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author Ġair back Ċ Ġ* Ġ@ since Ġ 6 . 0 . 0 Ċ Ġ*/ Ċ object ĠF reem ark er Factory Ġ{ ĊĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġval Ġconfiguration Ġ= ĠConfiguration ( Configuration . VERSION _ 2 _ 3 _ 2 8 ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġconfiguration . default Encoding Ġ= Ġ" UTF - 8 " ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġload ers Ġ= ĠArrayList < Template Loader >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi 1 8 n Folder Ġ= ĠFile ( FileUtils . user Folder , Ġ" i 1 8 n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconf Folder 1 Ġ= ĠFile ( FileUtils . user Folder , Ġ" config ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconf Folder 2 Ġ= ĠFile ( FileUtils . user Folder , Ġ" src / main / config ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i 1 8 n Folder . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload ers . add ( File Template Loader ( i 1 8 n Folder )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( conf Folder 1 . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload ers . add ( File Template Loader ( conf Folder 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( conf Folder 2 . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload ers . add ( File Template Loader ( conf Folder 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload ers . add ( Class Template Loader ( F reem ark er Factory :: class . java . class Loader , Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . template Loader Ġ= ĠMulti Template Loader ( loaders . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġair back Exception ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġtemplate ( template Path : ĠString ) Ġ= Ġconfiguration . get Template ( template Path ) Ċ } Ċ