/**
  * Reverse the property links of a map.
  *
  * @param object|array $from
  * @param object|array $to
  * @param MapInterface $map
  *
  * @return self
  */
 public function reverse(&$from, $to, MapInterface $map)
 {
     $mapper = new Mapper($this->propertyAccess);
     foreach ($map->getEmbeddedCollections() as $collection) {
         // New value
         $value = [];
         // Source items
         $source = $this->propertyAccess->getValue($to, $collection->getTo());
         foreach ($source as $item) {
             $newItem = $collection->getFactory()->reverse($item);
             $value[] = $mapper->reverse($newItem, $item, $collection->getMap());
         }
         $this->propertyAccess->setValue($from, $collection->getFrom(), $value);
     }
     return $this;
 }