package Ġmono . shape . shape Ċ Ċ import Ġmono . graphics . geo . Point Ċ import Ġmono . graphics . geo . Rect Ċ import Ġmono . shape . Shape Extra Manager Ċ import Ġmono . shape . serialization . Abstract Serializable Shape Ċ import Ġmono . shape . serialization . Serializable Rectangle Ċ import Ġmono . shape . extra . Rectangle Extra Ċ import Ġmono . shape . extra . Shape Extra Ċ Ċ /** Ċ Ġ* ĠA Ġrectangle Ġshape . Ċ Ġ*/ Ċ class ĠRectangle ( ĊĠĠĠ Ġrect : ĠRect , ĊĠĠĠ Ġid : ĠString ? Ġ= Ġnull , ĊĠĠĠ ĠparentId : ĠString ? Ġ= Ġnull Ċ ) Ġ: ĠAbstract Shape ( id , ĠparentId Ġ= ĠparentId ) Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġbound : ĠRect Ġ= Ġrect ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġupdate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Updated Ġ= Ġfield Ġ!= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Updated ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġextra : ĠRectangle Extra Ġ= ĠShape Extra Manager . default Rectangle Extra ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġcontent Ġof Ġthis Ġshape Ġalso Ġincludes Ġall Ġvertical / horizontal Ġlines Ġcreated Ġby Ġ[ start Point ] ĊĠĠĠĠ Ġ* Ġand Ġ[ end Point ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġstart Point : ĠPoint , ĊĠĠĠĠĠĠĠ Ġend Point : ĠPoint , ĊĠĠĠĠĠĠĠ Ġid : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠparentId : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ ĠRect . by LTR B ( start Point . left , Ġstart Point . top , Ġend Point . left , Ġend Point . top ), ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ ĠparentId Ġ= ĠparentId ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġserial izable Rectangle : ĠSerializable Rectangle , ĊĠĠĠĠĠĠĠ ĠparentId : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġserial izable Rectangle . bound , ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġserial izable Rectangle . id , ĊĠĠĠĠĠĠĠ ĠparentId Ġ= ĠparentId ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġextra Ġ= ĠRectangle Extra ( serial izable Rectangle . extra ) ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġserial izable Rectangle . version Code ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġto Serializable Shape ( is Id Included : ĠBoolean ): ĠAbstract Serializable Shape Ġ= ĊĠĠĠĠĠĠĠ ĠSerializable Rectangle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid . take If Ġ{ Ġis Id Included Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbound , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Ġ= Ġextra . to Serializable Extra () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġset Bound ( new Bound : ĠRect ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbound Ġ= Ġnew Bound ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Extra ( new Extra : ĠShape Extra ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new Extra Ġ! is ĠRectangle Extra Ġ|| Ġnew Extra Ġ== Ġextra ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextra Ġ= Ġnew Extra ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ