/**
  * @param array $data
  * @param Pagination $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['items'])) {
         return $object;
     }
     $trackCollection = new TrackCollection();
     foreach ($data['items'] as $track) {
         $trackCollection->add(new Track($track));
     }
     $object->setItems($trackCollection);
     return $object;
 }
 /**
  * @param array $data
  * @param object $object
  * @return object
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['tracks'])) {
         return $object;
     }
     $paginatedTrackCollection = new TrackPagination($data['tracks']);
     $trackCollection = new TrackCollection();
     foreach ($paginatedTrackCollection->getItems() as $track) {
         $trackCollection->add(new Track($track));
     }
     $paginatedTrackCollection->setItems($trackCollection);
     $object->setTracks($paginatedTrackCollection);
     return $object;
 }
 /**
  * @param array $data
  * @param TrackCollection $object
  * @return TrackCollection
  */
 public function hydrate(array $data, $object)
 {
     if (!isset($data['tracks'])) {
         return $object;
     }
     foreach ($data['tracks'] as $track) {
         $hydrators = new AggregateHydrator();
         $hydrators->add(new TrackHydrator());
         $hydrators->add(new AlbumAwareHydrator());
         $hydrators->add(new ArtistCollectionAwareHydrator());
         $hydrators->add(new ImageCollectionAwareHydrator());
         $object->add($hydrators->hydrate($track, new Track()));
     }
     return $object;
 }