package Ġdev . ar unk umar . dot Ċ Ċ import Ġjava . io . PrintWriter Ċ Ċ open Ġclass ĠDot Statement ( ĊĠ Ġprotected Ġval Ġname : ĠString Ċ ) Ġ: ĠStatement () Ġ{ ĊĊĠ Ġprotected Ġval Ġattributes : ĠMutable Map < String , ĠAny > Ġ= ĠLinkedHashMap () ĊĊĠ Ġfun Ġadd Attribute ( name : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠ Ġattributes [ name ] Ġ= Ġvalue ĊĠ Ġ} ĊĊĠ Ġin fix Ġfun ĠString .` =` ( value : ĠAny ) Ġ{ ĊĠĠĠ Ġattributes [ this ] Ġ= Ġvalue ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġwrite ( level : ĠInt , Ġwriter : ĠPrintWriter ) Ġ{ ĊĠĠĠ Ġindent ( level , Ġwriter ) ĊĠĠĠ Ġwriter . print ( name ) ĊĠĠĠ Ġif Ġ( attributes . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġwriter . print ( ĊĠĠĠĠĠĠĠ Ġattributes ĊĠĠĠĠĠĠĠĠĠ Ġ. entries ĊĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseparator Ġ= Ġ", Ġ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefix Ġ= Ġ" Ġ[ ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpostfix Ġ= Ġ" ]" ĊĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ( key , Ġvalue ) Ġ-> Ġ"$ key =${ value . quote }" Ġ} ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġwriter . println () ĊĠ Ġ} Ċ } Ċ