/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . Ġfan poll ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġfan poll . infra . base . i 1 8 n Ċ Ċ import Ġcom . types afe . config . Config Factory Ċ import Ġcom . types afe . config . Config Parse Options Ċ import Ġcom . types afe . config . Config Resolve Options Ċ import Ġfan poll . infra . base . exception . Internal Server Exception Ċ import Ġfan poll . infra . base . response . Inf ra Response Code Ċ Ċ class ĠHo con Messages Provider ( available Lang s : ĠAvailable Lang s , Ġbase Package Path : ĠString , Ġfile Prefix : ĠString , Ġallow Un resolved : ĠBoolean Ġ= Ġfalse ) Ġ: ĊĠĠĠ ĠMessages Provider < Ho con Messages Impl > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġmessages : ĠMap < Lang , ĠHo con Messages Impl > Ġ= Ġavailable Lang s . langs . associate With Ġ{ ĊĠĠĠĠĠĠĠ ĠHo con Messages Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĠConfig Factory . load ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ base Package Path /$ file Prefix $ it . conf ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Parse Options . defaults (). apply Ġ{ Ġallow Missing Ġ= Ġfalse Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Resolve Options . defaults (). set Allow Un resolved ( allow Un resolved ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Lang Ġ= Ġavailable Lang s . first () ĊĠĠĠĠĠĠĠ Ġif Ġ(! messages . containsKey ( default Lang )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInternal Server Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInf ra Response Code . SERVER _ CONFIG _ ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" default Ġlang Ġfile Ġ$ base Package Path /$ file Prefix ${ default Lang . code }. conf Ġis Ġmissing " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }