protected static function _create($export, array $options)
{
$export += array('data' => array(), 'update' => array(), 'key' => '');
$data = Set::merge($export['data'], $export['update']);
if (array_keys($data) == range(0, count($data) - 1)) {
$data = $export['update'];
}
$localOpts = array('finalize' => false) + $options;
foreach ($data as $key => $val) {
if (is_object($val) && method_exists($val, 'export')) {
$data[$key] = static::_create($val->export($options), $localOpts);
}
}
return $options['finalize'] ? array('create' => $data) : $data;
}