private function doLookupResourceUriTargetFor(ExpNsResource $expNsResource) { $poolCache = InMemoryPoolCache::getInstance()->getPoolCacheFor('sparql.store.redirectlookup'); if (!$poolCache->contains($expNsResource->getUri())) { $poolCache->save($expNsResource->getUri(), $this->lookupResourceUriTargetFromDatabase($expNsResource)); } return $poolCache->fetch($expNsResource->getUri()); }
/** * Store a value for a property identified by its title object. No * duplicate elimination as this is usually done in SMWSemanticData * already (which is typically used to generate this object). * * @param SMWExpNsResource $property * @param Element $child */ public function addPropertyObjectValue(SMWExpNsResource $property, Element $child) { $this->hash = null; if (!array_key_exists($property->getUri(), $this->m_edges)) { $this->m_children[$property->getUri()] = array(); $this->m_edges[$property->getUri()] = $property; } $this->m_children[$property->getUri()][] = $child; }
public function testRedirectTargetForCachedLookup() { $dataItem = new DIWikiPage('Foo', NS_MAIN); $expNsResource = new ExpNsResource('Foo', 'Bar', '', $dataItem); $cache = $this->getMockBuilder('\\Onoi\\Cache\\Cache')->disableOriginalConstructor()->getMock(); $cache->expects($this->once())->method('contains')->will($this->returnValue(true)); $cache->expects($this->once())->method('fetch')->with($this->equalTo($expNsResource->getUri()))->will($this->returnValue($expNsResource)); $connection = $this->getMockBuilder('\\SMWSparqlDatabase')->disableOriginalConstructor()->getMock(); $instance = new RedirectLookup($connection, $cache); $exists = null; $instance->findRedirectTargetResource($expNsResource, $exists); $this->assertTrue($exists); $instance->clear(); }