コード例 #1
0
 public function testGetIdentityString()
 {
     $id = new ItemId('Q7');
     $aspect = EntityUsage::ALL_USAGE;
     $usage = new EntityUsage($id, $aspect);
     $this->assertInternalType('string', $usage->getIdentityString());
 }
 /**
  * @see UsageAccumulator::addUsage
  *
  * @param EntityUsage $usage
  */
 public function addUsage(EntityUsage $usage)
 {
     $usages = $this->getUsages();
     $key = $usage->getIdentityString();
     $usages[$key] = $usage;
     $this->parserOutput->setExtensionData('wikibase-entity-usage', $usages);
 }
コード例 #3
0
 private function hasUsage($actualUsages, EntityId $entityId, $aspect)
 {
     $usage = new EntityUsage($entityId, $aspect);
     $key = $usage->getIdentityString();
     return isset($actualUsages[$key]);
 }
コード例 #4
0
 /**
  * @param Traversable $rows
  *
  * @return EntityUsage[]
  */
 private function convertRowsToUsages(Traversable $rows)
 {
     $usages = array();
     foreach ($rows as $object) {
         $entityId = $this->idParser->parse($object->eu_entity_id);
         list($aspect, $modifier) = EntityUsage::splitAspectKey($object->eu_aspect);
         $usage = new EntityUsage($entityId, $aspect, $modifier);
         $key = $usage->getIdentityString();
         $usages[$key] = $usage;
     }
     return $usages;
 }
コード例 #5
0
 private function assertUsageTracking(ItemId $id, $aspect, ParserOutput $parserOutput)
 {
     $usageAcc = new ParserOutputUsageAccumulator($parserOutput);
     $usages = $usageAcc->getUsages();
     $expected = new EntityUsage($id, $aspect);
     $usageIdentities = array_map(function (EntityUsage $usage) {
         return $usage->getIdentityString();
     }, $usages);
     $expectedIdentities = array($expected->getIdentityString());
     $this->assertEquals($expectedIdentities, array_values($usageIdentities));
 }
 /**
  * @param EntityId $entityId
  * @param string[] $aspects (may have modifiers applied)
  *
  * @return EntityUsage[]
  */
 private function buildEntityUsages(EntityId $entityId, array $aspects)
 {
     $usages = array();
     foreach ($aspects as $aspect) {
         list($aspect, $modifier) = EntityUsage::splitAspectKey($aspect);
         $entityUsage = new EntityUsage($entityId, $aspect, $modifier);
         $key = $entityUsage->getIdentityString();
         $usages[$key] = $entityUsage;
     }
     ksort($usages);
     return $usages;
 }