package Ġtop . better code . lang . property Ċ Ċ import Ġorg . springframework . core . io . Url Resource Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠPeter ĠW u Ċ Ġ*/ Ċ class ĠProperties Source ( private Ġvar arg Ġval Ġbase Name : ĠString ) Ġ: ĠMap Property Source ( mutable Map Of ()) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġof ( var arg Ġbase Name : ĠString ): ĠProperties Source Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProperties Source (* base Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload () Ġ{ ĊĠĠĠĠĠĠĠ Ġsource . clear () ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġfor Ġ( name Ġin Ġbase Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresource AsStream Ġ= ĠProperties Source :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getResource AsStream ("/ $ name . properties ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resource AsStream Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . load ( resource AsStream ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproperties . forEach Ġ{ Ġt , Ġu Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource [ t . toString ()] Ġ= Ġu . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsource . clear () ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġurl . split ("," ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . load ( Url Resource ( it ). inputStream ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproperties . forEach Ġ{ Ġt , Ġu Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource [ t . toString ()] Ġ= Ġu . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }