public function setData($data)
{
parent::setData($data);
// get transformed data and pass its values to child fields
$data = $this->getTransformedData();
if (!empty($data) && !is_array($data) && !is_object($data)) {
throw new \InvalidArgumentException(sprintf('Expected argument of type object or array, %s given', gettype($data)));
}
if (!empty($data)) {
$iterator = new RecursiveFieldsWithPropertyPathIterator($this);
$iterator = new \RecursiveIteratorIterator($iterator);
foreach ($iterator as $field) {
$field->updateFromObject($data);
}
}
}