package Ġorg . web scene . server . html Ċ Ċ /** Ċ Ġ* ĠBasic ĠHTML Ġelement Ġwhich Ġdoesn 't Ġcontain Ġany Ġchildren . Ċ Ġ* Ġ@ author ĠNick ĠAp per ley Ċ Ġ*/ Ċ open Ġclass ĠHtml Element Ġ: ĠHtml Tag Ġ{ ĊĠĠĠ Ġ/** ĠContains Ġunique Ġclass Ġnames . Ġ*/ ĊĠĠĠ Ġval Ġclasses Ġ= Ġmutable Set Of < String >() ĊĠĠĠ Ġoverride Ġval Ġattributes Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠ Ġoverride Ġlateinit Ġvar ĠtagName : ĠString ĊĠĠĠ Ġoverride Ġvar Ġis Closed Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġvar Ġtxt Content Ġ= Ġ"" ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Attributes () Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( attributes . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes . keys . forEach Ġ{ Ġappend ("$ it Ġ= Ġ\" ${ attributes [ it ]} \" Ġ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Classes () Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( classes . isNotEmpty ()) Ġappend (" Ġclass Ġ= Ġ\" ${ classes . join ToString (" Ġ" )} \" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Text ( indent : ĠInt ) Ġ= Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠ Ġ( 1 .. indent ). forEach Ġ{ Ġappend (" Ġ") Ġ} ĊĠĠĠĠĠĠĠ Ġappend ("< $ tagName ${ create Classes ()} ${ create Attributes () }") ĊĠĠĠĠĠĠĠ Ġif Ġ( is Closed ) Ġappend (" Ġ/> ") Ġelse Ġappend ( ">$ txt Content </ $ tagName >") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChanges Ġthe Ġ[ text ][ txt Content ] Ġto Ġinclude Ġin Ġthe ĠHTML Ġelement . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun ĠString . unary Plus () Ġ{ ĊĠĠĠĠĠĠĠ Ġtxt Content Ġ= Ġthis ĊĠĠĠ Ġ} Ċ }