Example #1
0
 /**
  * @param mixed      $data
  * @param Definition $definition
  * @param mixed      $origin
  */
 protected function denormalizeArray($data, Definition $definition, &$origin)
 {
     $collection = $origin !== null ? $definition->extract($origin) : $definition->create($origin);
     $prototype = $definition->getPrototype();
     if (!is_array($data) && !$data instanceof \Traversable) {
         $data = array();
     }
     foreach ($data as $index => $entry) {
         $item = isset($collection[$index]) ? $collection[$index] : $prototype->create($origin);
         $definition->settleKey($item, $index);
         $collection[$index] = $this->denormalize($entry, $prototype, $item);
     }
     $definition->settle($origin, $collection);
 }