public function getPath()
    {
        $path = $this->getPropertyValue(PropertyIds::PATH);

        // if the path property isn't set, get it
        if ($path === null) {
            $objectData = $this->getBinding()->getObjectService()->getObject(
                $this->getRepositoryId(),
                $this->getId(),
                $this->getPropertyQueryName(PropertyIds::PATH),
                false,
                IncludeRelationships::cast(IncludeRelationships::NONE),
                Constants::RENDITION_NONE,
                false,
                false
            );

            if ($objectData !== null
                && $objectData->getProperties() !== null
                && $objectData->getProperties()->getProperties() !== null
            ) {
                $objectProperties = $objectData->getProperties()->getProperties();
                if (isset($objectProperties[PropertyIds::PATH])
                    && $objectProperties[PropertyIds::PATH] instanceof PropertyString
                ) {
                    $path = $objectProperties[PropertyIds::PATH]->getFirstValue();
                }
            }
        }

        // we still don't know the path ... it's not a CMIS compliant repository
        if ($path === null) {
            throw new CmisRuntimeException('Repository didn\'t return ' . PropertyIds::PATH . '!');
        }

        return $path;
    }