public function hydrate(array $data, $overwriteLocalChanges = true)
{
if ($overwriteLocalChanges) {
$this->_values = array_merge($this->_values, $this->cleanData($data));
$this->_data = array_merge($this->_data, $data);
$this->_modified = array();
$this->_oldValues = array();
} else {
$this->_values = array_merge($this->cleanData($data), $this->_values);
$this->_data = array_merge($data, $this->_data);
}
if (!$this->isModified() && $this->isInProxyState()) {
$this->_state = self::STATE_PROXY;
}
}