/** * @param EntityRevision $entityRevision * @param RedirectRevision|null $followedRedirect a redirect leading to the entity for use in the output * @param EntityId[] $incomingRedirects Incoming redirects to include in the output * @param RdfBuilder $rdfBuilder * @param string|null $flavor The type of the output provided by serializer * * @return string RDF */ private function rdfSerialize(EntityRevision $entityRevision, RedirectRevision $followedRedirect = null, array $incomingRedirects, RdfBuilder $rdfBuilder, $flavor = null) { $rdfBuilder->startDocument(); $redir = null; if ($followedRedirect) { $redir = $followedRedirect->getRedirect(); $rdfBuilder->addEntityRedirect($redir->getEntityId(), $redir->getTargetId()); if ($followedRedirect->getRevisionId() > 0) { $rdfBuilder->addEntityRevisionInfo($redir->getEntityId(), $followedRedirect->getRevisionId(), $followedRedirect->getTimestamp()); } } if ($followedRedirect && $flavor === 'dump') { // For redirects, don't output the target entity data if the "dump" flavor is requested. // @todo: In this case, avoid loading the Entity all together. // However we want to output the revisions for redirects } else { $rdfBuilder->addEntityRevisionInfo($entityRevision->getEntity()->getId(), $entityRevision->getRevisionId(), $entityRevision->getTimestamp()); $rdfBuilder->addEntity($entityRevision->getEntity()); $rdfBuilder->resolveMentionedEntities($this->entityLookup); } if ($flavor !== 'dump') { // For $flavor === 'dump' we don't need to output incoming redirects. $targetId = $entityRevision->getEntity()->getId(); $this->addIncomingRedirects($targetId, $redir, $incomingRedirects, $rdfBuilder); } $rdfBuilder->finishDocument(); return $rdfBuilder->getRDF(); }
public function testGetTimestamp() { $instance = new RedirectRevision($this->newRedirect()); $this->assertSame('', $instance->getTimestamp()); }