public function store($updateNulls = false)
    {
        $new = !$this->{$this->getKeyName()};

        $action = $new ? 'Create' : 'Update';

        // @Event: Create / Update
        $this->triggerEvent(
            'onBefore' . $action,
            [
                'updateNulls' => &$updateNulls,
            ]
        );

        // @Event: Store
        $this->triggerEvent(
            'onBefore' . ucfirst(__FUNCTION__),
            [
                'updateNulls' => &$updateNulls,
            ]
        );

        // Do Action
        // If a primary key exists update the object, otherwise insert it.
        $this->getDataMapper()->saveOne($this, $this->getKeyName(true), $updateNulls);

        // @Event: Store
        $this->triggerEvent('onAfter' . ucfirst(__FUNCTION__));

        // @Event: Create / Update
        $this->triggerEvent(
            'onAfter' . $action,
            [
                'updateNulls' => &$updateNulls,
            ]
        );

        return $this;
    }