package Ġme . anno . utils . structures Ċ Ċ import Ġme . anno . io . IS ave able Ċ import Ġme . anno . io . base . Base Writer Ċ Ċ /** Ċ Ġ* Ġclass Ġfor Ġvalues , Ġwhich Ġhave Ġnot Ġthe Ġtypical Ġdefault Ġvalue Ċ Ġ* Ġthese Ġvalues Ġdon 't Ġneed Ġto Ġbe Ġsaved Ġin Ġtext Ġform , Ċ Ġ* Ġbecause Ġthey Ġcan Ġbe Ġset Ġautomatically Ċ Ġ* Ġ*/ Ċ class ĠValue WithDefault < V >( ĊĠĠĠ Ġprivate Ġvar Ġstate : ĠV ?, ĊĠĠĠ Ġprivate Ġvar Ġdefault : ĠV Ċ ) Ġ{ ĊĊĠĠĠ Ġconstructor ( value : ĠV ) Ġ: Ġthis ( null , Ġvalue ) ĊĊĠĠĠ Ġvar Ġwas Set Ġ= Ġfalse ĊĠĠĠ Ġval ĠisSet Ġget () Ġ= Ġstate Ġ!= Ġnull Ġ&& Ġ( state Ġ!= Ġdefault Ġ|| Ġwas Set ) ĊĠĠĠ Ġfun Ġwrite ( writer : ĠBase Writer , Ġself : ĠIS ave able ?, Ġname : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isSet ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write Something ( self , Ġname , Ġstate , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġvalue ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( isSet ) Ġstate !! Ġelse Ġdefault ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwas Set Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġwas Set Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetDefault ( v : ĠV ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Ġ= Ġv ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsets Ġthe Ġvalue Ġfor Ġa Ġslightly Ġcleaner Ġlook ĊĠĠĠĠ Ġ* Ġ( even Ġif Ġawk ward ) ĊĠĠĠĠ Ġ* Ġcan Ġbe Ġmis leading Ġin Ġthe Ġcontext Ġof Ġnumbers ... ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġtimes Assign ( value : ĠV ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠBase Writer . write Maybe ( self : ĠIS ave able ?, Ġname : ĠString , Ġvalue : ĠValue WithDefault <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . write ( this , Ġself , Ġname ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠBase Writer . write Maybe ( self : ĠIS ave able ?, Ġname : ĠString , Ġvalue : ĠValue WithDefault Func <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . write ( this , Ġself , Ġname ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }