42 public array $oldState,
44 public array $newState,
45 public array $copiedState
48 public function equals(
self $that) : bool{
49 $sameName = $this->newName === $that->newName ||
53 $this->newName->equals($that->newName)
60 count($this->oldState) !== count($that->oldState) ||
61 count($this->newState) !== count($that->newState) ||
62 count($this->copiedState) !== count($that->copiedState) ||
63 count(array_diff($this->copiedState, $that->copiedState)) !== 0
67 foreach(Utils::stringifyKeys($this->oldState) as $propertyName => $propertyValue){
68 if(!isset($that->oldState[$propertyName]) || !$that->oldState[$propertyName]->equals($propertyValue)){
73 foreach(Utils::stringifyKeys($this->newState) as $propertyName => $propertyValue){
74 if(!isset($that->newState[$propertyName]) || !$that->newState[$propertyName]->equals($propertyValue)){