$this->lockSetData = true;
$dispatcher =
$this->config->
getEventDispatcher();
// Hook to change content of the model data before transformation and mapping children
if ($dispatcher->
hasListeners(FormEvents::PRE_SET_DATA
)) { $event =
new PreSetDataEvent($this,
$modelData);
$dispatcher->
dispatch($event, FormEvents::PRE_SET_DATA
);
$modelData =
$event->
getData();
} // Treat data as strings unless a transformer exists
if (\
is_scalar($modelData) && !
$this->config->
getViewTransformers() && !
$this->config->
getModelTransformers()) { $modelData =
(string) $modelData;
} // Synchronize representations - must not change the content!
// Transformation exceptions are not caught on initialization
$normData =
$this->
modelToNorm($modelData);
$viewData =
$this->
normToView($normData);
// Validate if view data matches data class (unless empty)
if (!FormUtil::
isEmpty($viewData)) { $dataClass =
$this->config->
getDataClass();