private function testAddAndGetTitleUsage() { $q2 = new ItemId('Q2'); $this->usageAccumulator->addTitleUsage($q2); $expected = new EntityUsage($q2, EntityUsage::TITLE_USAGE); $entityUsages = $this->usageAccumulator->getUsages(); $this->assertContainsUsage($expected, $entityUsages); }
/** * @see SnakFormatter::formatSnak * * @param Snak $snak * * @return string Either plain text, wikitext or HTML, depending on the SnakFormatter provided. */ public function formatSnak(Snak $snak) { if ($snak instanceof PropertyValueSnak) { $value = $snak->getDataValue(); if ($value instanceof EntityIdValue) { $entityId = $value->getEntityId(); $this->addLabelUsage($value->getEntityId()); $this->usageAccumulator->addTitleUsage($entityId); } } return $this->snakFormatter->formatSnak($snak); }
/** * @param string $prefixedEntityId * * @since 0.5 * @return string|null Null if no site link found. */ public function getSiteLinkPageName($prefixedEntityId) { try { $itemId = new ItemId($prefixedEntityId); } catch (InvalidArgumentException $e) { return null; } // @fixme the SiteLinks do not contain badges! but all we want here is page name. $siteLinkRows = $this->siteLinkLookup->getLinks(array($itemId->getNumericId()), array($this->siteId)); foreach ($siteLinkRows as $siteLinkRow) { $siteLink = new SiteLink($siteLinkRow[0], $siteLinkRow[1]); $this->usageAccumulator->addTitleUsage($itemId); return $siteLink->getPageName(); } return null; }