protected function getLink(TdbShopCategory $oCategory, IMapperCacheTriggerRestricted $oCacheTriggerManager, $bCachingEnabled, $bLinkOnlyLastItem = false)
    {
        $aLinkParts = array();

        $oBreadcrumb = $oCategory->GetBreadcrumb();
        /** @var $oBreadcrumbItem TdbShopCategory */
        while ($oBreadcrumbItem = $oBreadcrumb->Next()) {
            if ($bCachingEnabled) {
                $oCacheTriggerManager->addTrigger($oBreadcrumbItem->table, $oBreadcrumbItem->id);
            }
            $aLinkData = array(
                'sName' => $oBreadcrumbItem->GetName(),
                'sLink' => '',
            );

            if (false === $bLinkOnlyLastItem || (true === $bLinkOnlyLastItem && $oBreadcrumb->IsLast())) {
                $aLinkData['sLink'] = $oBreadcrumbItem->GetLink();
            }
            $aLinkParts[] = $aLinkData;
        }

        return $aLinkParts;
    }