package Ġs rl . par os . k ain ĊĊ Ċ private Ġconst Ġval Ġj path Ġ= Ġ"$ [' demand '] " Ċ Ċ /* Ċ internal Ġclass ĠFull Demand Ġ: ĠDem and Ċ internal Ġclass ĠLast Demand Ġ: ĠDem and Ċ Ċ interface ĠPayload Ġ{ ĊĠ Ġval Ġdemand : ĠDem and Ċ } Ċ Ċ internal Ġclass ĠPayload With Demand ( private Ġval Ġmessage : ĠMut ant ) Ġ: ĠPayload Ġ{ ĊĠ Ġoverride Ġval Ġdemand : ĠDem and Ġget () Ġ= Ġparse ( message . value ()) ĊĠĠĠ Ġ. read ( j path , ĠList :: class . java ) ĊĠĠĠ Ġ. take If Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠ Ġ. let Ġ{ Ġit ?. get ( 0 ). toString () Ġ} ĊĠĠĠ Ġ. let Ġ{ ĠDem and . Type . valueOf ( it ) Ġ} ĊĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDem and . Type . FULL Ġ-> ĠFull Demand () ĊĠĠĠĠĠĠĠ ĠDem and . Type . LAST Ġ-> ĠLast Demand () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠLast Payload ( message : ĠMut ant ) Ġ: ĠPayload Ġ{ ĊĠ Ġprivate Ġval Ġmessage Ġ= Ġmessage ĊĊĠ Ġoverride Ġval Ġdemand : ĠDem and Ġget () Ġ= Ġparse ( message . value ()) ĊĠĠĠ Ġ. read ( j path , ĠList :: class . java ) ĊĠĠĠ Ġ. take If Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠ Ġ. let Ġ{ Ġit ?. get ( 0 ). toString () Ġ} ĊĠĠĠ Ġ. let Ġ{ ĠDem and . Type . valueOf ( it ) Ġ} ĊĠĠĠ Ġ. take If Ġ{ Ġit Ġ== ĠDem and . Type . LAST Ġ} ĊĠĠĠ Ġ. let Ġ{ ĠLast Demand () Ġ} Ċ } Ċ Ċ internal Ġclass ĠBlock chain Demand ( bc : ĠBlock chain ) Ġ: ĠDem and Ġ{ Ċ Ċ } Ċ Ċ internal Ġclass ĠJson Demand ( message : ĠString ) Ġ: ĠDem and Ġ{ ĊĠ Ġprivate Ġval Ġjson : ĠDocument Context Ġ= Ġparse ( message ) ĊĊĠ Ġoverride Ġfun Ġyield ( ws : ĠWebSocket ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġjson . demand ĊĠĠĠĠĠ Ġ. take If Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠ Ġ. let Ġ{ Ġit ?. get ( 0 ). toString () Ġ} ĊĠĠĠĠĠ Ġ. let Ġ{ ĠDem and . Type . valueOf ( it ) Ġ} ĊĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠDem and . Type . Full Ġ-> Ġws . send (" Blockchain ") ĊĠĠĠĠĠĠĠĠĠ ĠDem and . Type . Last Ġ-> Ġws . send (" Last ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. let Ġ{ Ġtrue Ġ} ĊĠ Ġ} Ċ } Ċ */ Ċ