Pimcore\Model\Webservice\Data\Object\Concrete::reverseMap PHP Method

reverseMap() public method

public reverseMap ( $object, boolean $disableMappingExceptions = false, null $idMapper = null )
$object
$disableMappingExceptions boolean
$idMapper null
    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());
                    }
                }
            }
        }
    }