public function deleteContentStream(
        $repositoryId,
        & $objectId,
        & $changeToken = null,
        ExtensionDataInterface $extension = null
    ) {
        if (empty($objectId)) {
            throw new CmisInvalidArgumentException('Object id must not be empty!');
        }

        $this->flushCached();

        $url = $this->getObjectUrl($repositoryId, $objectId);

        $url->getQuery()->modify(
            [
                Constants::CONTROL_CMISACTION => Constants::CMISACTION_DELETE_CONTENT,
                Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false'
            ]
        );

        if ($changeToken !== null && !$this->getSession()->get(SessionParameter::OMIT_CHANGE_TOKENS, false)) {
            $url->getQuery()->modify([Constants::PARAM_CHANGE_TOKEN => $changeToken]);
        }

        $newObject = $this->getJsonConverter()->convertObject((array) $this->postJson($url));

        // $objectId was passed by reference. The value is changed here to new object id
        $objectId = null;
        if ($newObject !== null) {
            $objectId = $newObject->getId();
            $newObjectProperties = $newObject->getProperties()->getProperties();
            if ($changeToken !== null && count($newObjectProperties) > 0) {
                $newChangeToken = $newObjectProperties[PropertyIds::CHANGE_TOKEN];
                // $changeToken was passed by reference. The value is changed here
                $changeToken = $newChangeToken === null ? null : $newChangeToken->getFirstValue();
            }
        }
    }