Pimcore\Model\Object\ClassDefinition\Data\Objectbricks::getDiffDataFromEditmode PHP Method

getDiffDataFromEditmode() public method

See parent class.
public getDiffDataFromEditmode ( $data, null $object = null, mixed $params = [] ) : null | Pimcore\Date
$data
$object null
$params mixed
return null | Pimcore\Date
    public function getDiffDataFromEditmode($data, $object = null, $params = [])
    {
        $valueGetter = "get" . ucfirst($this->getName());
        $valueSetter = "set" . ucfirst($this->getName());
        $brickdata = $object->{$valueGetter}();
        foreach ($data as $item) {
            $subdata = $item["data"];
            if (!$subdata) {
                continue;
            }
            $brickname = $subdata["brick"];
            $getter = "get" . ucfirst($brickname);
            $setter = "set" . ucfirst($brickname);
            $brick = $brickdata->{$getter}();
            if (!$brick) {
                // brick must be added to object
                $brickClass = "\\Pimcore\\Model\\Object\\Objectbrick\\Data\\" . ucfirst($brickname);
                $brick = new $brickClass($object);
            }
            $fieldname = $subdata["name"];
            $fielddata = [$subdata["subdata"]];
            $collectionDef = Object\Objectbrick\Definition::getByKey($brickname);
            $fd = $collectionDef->getFieldDefinition($fieldname);
            if ($fd && $fd->isDiffChangeAllowed($object, $params)) {
                $value = $fd->getDiffDataFromEditmode($fielddata, $object, $params);
                $brick->setValue($fieldname, $value);
                $brickdata->{$setter}($brick);
            }
            $object->{$valueSetter}($brickdata);
        }
        return $brickdata;
    }