package Ġorg . cascade bot . cascade bot . utils . lists Ċ Ċ import Ġjava . util . Collections Ċ Ċ class ĠChange List < T >() Ġ{ ĊĊĠĠĠ Ġval Ġadded Items ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġadded . toSet () ĊĠĠĠ Ġval Ġremoved Items ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġremoved . toSet () ĊĊĠĠĠ Ġprivate Ġval Ġadded Ġ= ĠCollections . synchronized Set < T >( HashSet ()) ĊĠĠĠ Ġprivate Ġval Ġremoved Ġ= ĠCollections . synchronized Set < T >( HashSet ()) ĊĊĠĠĠ Ġfun Ġadd ( element : ĠT ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! removed . remove ( element )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġadded . add ( element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove ( element : ĠT ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! added . remove ( element )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġremoved . add ( element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġapply Changes ( base Collection : ĠSet < T >): ĠSet < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbase Elements Ġ= Ġbase Collection . to Mutable Set () ĊĠĠĠĠĠĠĠ Ġbase Elements . addAll ( added ) ĊĠĠĠĠĠĠĠ Ġbase Elements . removeAll ( removed ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbase Elements ĊĠĠĠ Ġ} Ċ Ċ }