/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 - 2 0 1 9 ĠHERE ĠEurope ĠB . V . Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* ĠLicense - Filename : ĠLICENSE Ċ Ġ*/ Ċ Ċ package Ġcom . here . glue co di um . generator . common . templates Ċ Ċ import Ġcom . here . glue co di um . generator . common . Name Resolver Ċ import Ġorg . trim ou . engine . Must ache Engine Ċ import Ġorg . trim ou . engine . Must ache Engine Builder Ċ import Ġorg . trim ou . engine . locator . Class Path Template Locator Ċ import Ġorg . trim ou . handle bars . Helpers Builder Ċ import Ġorg . trim ou . handle bars . Switch Helper Ċ Ċ object ĠTemplate Engine Ġ{ ĊĠĠĠ Ġprivate Ġval Ġengine : ĠMust ache Engine ĊĠĠĠ Ġprivate Ġval Ġcopyright Header Resolver Ġ= ĠCopyright Header Resolver () ĊĠĠĠ Ġprivate Ġvar Ġcopyright Header Initialized Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġname Resolver Helper Ġ= ĠName Resolver Helper () ĊĠĠĠ Ġprivate Ġval Ġif Predicate Helper Ġ= ĠPredicate Helper ( true ) ĊĠĠĠ Ġprivate Ġval Ġunless Predicate Helper Ġ= ĠPredicate Helper ( false ) ĊĠĠĠ Ġprivate Ġval Ġsort Helper Ġ= ĠSort Helper () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġengine Ġ= ĠMust ache Engine Builder . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Template Locator ( Class Path Template Locator ( 1 , Ġ" templates ", Ġ" must ache ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setProperty (" org . trim ou . engine . config . skip Value Esc aping ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" prefix ", ĠPrefix Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" prefix Partial ", ĠPrefix Partial Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" join Partial ", ĠJoin Partial Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" instance Of ", ĠInstance Of Helper ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" not InstanceOf ", ĠInstance Of Helper ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" capitalize ", ĠCap ital ize Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" escape ", ĠE scape Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" switch ", ĠNice Switch Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" case ", ĠSwitch Helper . Case Helper ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" default ", ĠSwitch Helper . Default Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" set Join ", ĠSet Join Helper ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" resolve Name ", Ġname Resolver Helper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" if Predicate ", Ġif Predicate Helper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" unless Predicate ", Ġunless Predicate Helper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helper (" sort ", Ġsort Helper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Helpers ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelpers Builder . empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Is Equal () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add IsNot Equal () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Include () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Join () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Num Expr () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Set () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Resolver ( copyright Header Resolver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Copyright Header Contents ( contents : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! copyright Header Initialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopyright Header Resolver . copyright Header Content Ġ= Ġcontents ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopyright Header Initialized Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrender ( ĊĠĠĠĠĠĠĠ Ġtemplate Name : ĠString , ĊĠĠĠĠĠĠĠ Ġdata : ĠAny , ĊĠĠĠĠĠĠĠ Ġname Resolvers : ĠMap < String , ĠName Resolver > Ġ= Ġempty Map (), ĊĠĠĠĠĠĠĠ Ġpredicates : ĠMap < String , Ġ( Any )-> ĠBoolean > Ġ= Ġempty Map (), ĊĠĠĠĠĠĠĠ Ġsort ers : ĠMap < String , Ġ( List < Any > )-> ĠList < Any >> Ġ= Ġempty Map () ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġname Resolver Helper . name Resolvers Ġ+= Ġname Resolvers ĊĠĠĠĠĠĠĠ Ġif Predicate Helper . predicates Ġ+= Ġpredicates ĊĠĠĠĠĠĠĠ Ġunless Predicate Helper . predicates Ġ+= Ġpredicates ĊĠĠĠĠĠĠĠ Ġsort Helper . sort ers Ġ+= Ġsort ers ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġengine . get Must ache ( template Name ). render ( data ) ĊĊĠĠĠĠĠĠĠ Ġname Resolver Helper . name Resolvers . clear () ĊĠĠĠĠĠĠĠ Ġif Predicate Helper . predicates . clear () ĊĠĠĠĠĠĠĠ Ġunless Predicate Helper . predicates . clear () ĊĠĠĠĠĠĠĠ Ġsort Helper . sort ers . clear () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ