package Ġnet . cord a . smo ket esting Ċ Ċ import Ġcom . types afe . config . Config Ċ import Ġcom . types afe . config . Config Factory . empty Ċ import Ġcom . types afe . config . Config Render Options Ċ import Ġcom . types afe . config . Config Value Ċ import Ġcom . types afe . config . Config Value Factory Ċ import Ġnet . cord a . core . identity . C ord a X 5 0 0 Name Ċ import Ġnet . cord a . node api . internal . config . User Ċ Ċ class ĠNode Config ( ĊĠĠĠĠĠĠĠ Ġval Ġlegal Name : ĠC ord a X 5 0 0 Name , ĊĠĠĠĠĠĠĠ Ġval Ġp 2 p Port : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġrpc Port : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġrpc Admin Port : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġis Not ary : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġusers : ĠList < User > Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrender Options : ĠConfig Render Options Ġ= ĠConfig Render Options . defaults (). set Origin Comments ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcommon Name : ĠString Ġget () Ġ= Ġlegal Name . organisation ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠThe Ġconfiguration Ġobject Ġdepends Ġupon Ġthe Ġnetwork Map , ĊĠĠĠĠ Ġ* Ġwhich Ġis Ġmutable . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ// TODO ĠMake Ġuse Ġof ĠAny . to Config ĊĠĠĠ Ġprivate Ġfun Ġto File Config (): ĠConfig Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġempty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" my Legal Name ", Ġvalue For ( legal Name . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" p 2 p Address ", Ġaddress Value For ( p 2 p Port )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" rpc Settings ", Ġempty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" address ", Ġaddress Value For ( rpc Port )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" admin Address ", Ġaddress Value For ( rpc Admin Port )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. root ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" rpc Users ", Ġvalue For ( users . map ( User :: toMap ). toList ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Value (" use Test Clock ", Ġvalue For ( true )) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( isNot ary ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . with Value (" not ary ", ĠConfig Value Factory . from Map ( map Of (" valid ating " Ġto Ġtrue ))) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Text (): ĠString Ġ= Ġto File Config (). root (). render ( render Options ) ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġvalue For ( any : ĠT ): ĠConfig Value ? Ġ= ĠConfig Value Factory . from Any Ref ( any ) ĊĊĠĠĠ Ġprivate Ġfun Ġaddress Value For ( port : ĠInt ) Ġ= Ġvalue For (" localhost :$ port ") Ċ } Ċ