public function reverseMap($object, $disableMappingExceptions = false, $idMapper = null)
{
$keys = get_object_vars($this);
foreach ($keys as $key => $value) {
$method = "set" . $key;
if (method_exists($object, $method)) {
$object->{$method}($value);
}
}
//must be after generic setters above!!
parent::reverseMap($object, $disableMappingExceptions, $idMapper);
if (is_array($this->elements)) {
foreach ($this->elements as $element) {
$class = $object->getClass();
$setter = "set" . ucfirst($element->name);
if (method_exists($object, $setter)) {
$tag = $class->getFieldDefinition($element->name);
if ($tag) {
if ($class instanceof Model\Object\ClassDefinition\Data\Fieldcollections) {
$object->{$setter}($tag->getFromWebserviceImport($element->fieldcollection, $object, [], $idMapper));
} else {
$object->{$setter}($tag->getFromWebserviceImport($element->value, $object, [], $idMapper));
}
} else {
Logger::error("tag for field " . $element->name . " not found");
}
} else {
if (!$disableMappingExceptions) {
throw new \Exception("No element [ " . $element->name . " ] of type [ " . $element->type . " ] found in class definition [" . $class->getId() . "] | " . $class->getName());
}
}
}
}
}