/** * Returns a diff between this EntityContent and the given EntityContent. * * @param EntityContent $toContent * * @return EntityContentDiff */ public function getDiff(EntityContent $toContent) { $fromContent = $this; $differ = new MapDiffer(); $redirectDiffOps = $differ->doDiff($fromContent->getRedirectData(), $toContent->getRedirectData()); $redirectDiff = new Diff($redirectDiffOps, true); $fromEntity = $fromContent->isRedirect() ? $this->makeEmptyEntity() : $fromContent->getEntity(); $toEntity = $toContent->isRedirect() ? $this->makeEmptyEntity() : $toContent->getEntity(); $entityDiffer = new EntityDiffer(); $entityDiff = $entityDiffer->diffEntities($fromEntity, $toEntity); return new EntityContentDiff($entityDiff, $redirectDiff); }