package Ġru . hh . plugins . fre emark er _ wrapper Ċ Ċ import Ġcom . google . common . base . Charsets Ċ import Ġfre emark er . template . Configuration Ċ import Ġfre emark er . template . Template ExceptionHandler Ċ import Ġru . hh . plugins . fre emark er _ wrapper . adapters . Property Object Wrapper Ċ import Ġjava . io . File Ċ import Ġjava . io . String Writer Ċ Ċ /** Ċ Ġ* ĠBase Ġconfiguration Ġwrapper Ġfor Ġresolving ĠF reem ark er 's Ġtemplates . Ċ Ġ*/ Ċ class ĠF reem ark er Configuration ( ĊĠĠĠ Ġprivate Ġval Ġconfigured Path : ĠString Ċ ) Ġ: ĠConfiguration ( DEFAULT _ IN COMPAT IBLE _ IMP RO VE MENTS ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild And Resolve ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplates DirPath : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams : ĠMap < String , ĠAny > ĊĠĠĠĠĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfre emark er Configuration Ġ= ĠF reem ark er Configuration ( templates DirPath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfre emark er Configuration . resolve Template ( template Name , Ġparams ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Encoding Ġ= ĠChar sets . UTF _ 8 . name () ĊĠĠĠĠĠĠĠ Ġlocalized Lookup Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġtemplate ExceptionHandler Ġ= ĠTemplate ExceptionHandler . RE THROW _ HANDLER ĊĠĠĠĠĠĠĠ Ġobject Wrapper Ġ= ĠProperty Object Wrapper () ĊĊĠĠĠĠĠĠĠ Ġset Directory For Template Loading ( File ( configured Path )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġfor Ġresolving Ġtemplate . ft l Ġinto Ġ[ String ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtemplate RelativePath Ġ-- Ġpath Ġto ĠFree Marker 's Ġtemplate Ġfile Ġrelatively Ġto Ġconfigured Ġroot ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ see Ġ[ fre emark er . template . Configuration . set Directory For Template Loading ] ĊĠĠĠĠ Ġ* Ġ@ param Ġtemplate Params ĠĠĠĠĠĠ Ġ-- Ġparameters Ġfor Ġtemplate Ġresolving ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġresolve Template ( ĊĠĠĠĠĠĠĠ Ġtemplate RelativePath : ĠString , ĊĠĠĠĠĠĠĠ Ġtemplate Params : ĠMap < String , ĠAny ?> ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Template ( template RelativePath ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠF reem ark er Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Can 't Ġfind Ġtemplate Ġ[ configured Path : Ġ$ configured Path , Ġtemplate RelativePath : Ġ$ template RelativePath ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠString Writer (). use Ġ{ Ġwriter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate . process ( template Params , Ġwriter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . buffer . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠF reem ark er Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Can 't Ġresolve Ġtemplate Ġ[ configured Path : Ġ$ configured Path , Ġtemplate RelativePath : Ġ$ template RelativePath , Ġtemplate Params : Ġ$ template Params ]", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ