/** * @since 2.1 * * @return ShowParserFunction */ public function newShowParserFunction() { $circularReferenceGuard = new CircularReferenceGuard('show-parser'); $circularReferenceGuard->setMaxRecursionDepth(2); $parserData = ApplicationFactory::getInstance()->newParserData($this->parser->getTitle(), $this->parser->getOutput()); $messageFormatter = new MessageFormatter($this->parser->getTargetLanguage()); $instance = new ShowParserFunction($parserData, $messageFormatter, $circularReferenceGuard); return $instance; }
/** * @since 2.2 * * @return QueryEngine */ public function newMasterQueryEngine() { $circularReferenceGuard = new CircularReferenceGuard('sparql-query'); $circularReferenceGuard->setMaxRecursionDepth(2); $compoundConditionBuilder = new CompoundConditionBuilder(); $compoundConditionBuilder->setCircularReferenceGuard($circularReferenceGuard); $queryEngine = new QueryEngine($this->store->getConnection('sparql'), $compoundConditionBuilder, new QueryResultFactory($this->store), new EngineOptions()); return $queryEngine; }
/** * @since 2.2 * * @return QueryEngine */ public function newMasterQueryEngine() { $engineOptions = new EngineOptions(); $hierarchyFinder = new HierarchyFinder($this->store, ApplicationFactory::getInstance()->newCacheFactory()->newFixedInMemoryCache(500)); $circularReferenceGuard = new CircularReferenceGuard('sparql-query'); $circularReferenceGuard->setMaxRecursionDepth(2); $compoundConditionBuilder = new CompoundConditionBuilder($engineOptions); $compoundConditionBuilder->setCircularReferenceGuard($circularReferenceGuard); $compoundConditionBuilder->setHierarchyFinder($hierarchyFinder); $queryEngine = new QueryEngine($this->store->getConnection('sparql'), $compoundConditionBuilder, new QueryResultFactory($this->store), $engineOptions); return $queryEngine; }
/** * @since 2.2 * * @return QueryEngine */ public function newMasterQueryEngine() { $engineOptions = new EngineOptions(); $circularReferenceGuard = new CircularReferenceGuard('sparql-queryengine'); $circularReferenceGuard->setMaxRecursionDepth(2); $compoundConditionBuilder = new CompoundConditionBuilder(new DescriptionInterpreterFactory(), $engineOptions); $compoundConditionBuilder->setCircularReferenceGuard($circularReferenceGuard); $compoundConditionBuilder->setPropertyHierarchyLookup($this->applicationFactory->newPropertyHierarchyLookup()); $queryEngine = new QueryEngine($this->store->getConnection('sparql'), $compoundConditionBuilder, new QueryResultFactory($this->store), $engineOptions); $cachedQueryResultPrefetcher = ApplicationFactory::getInstance()->singleton('CachedQueryResultPrefetcher'); $cachedQueryResultPrefetcher->setQueryEngine($queryEngine); return $cachedQueryResultPrefetcher; }
public function testRoundtripForRegisteredNamespace() { $instance = new CircularReferenceGuard('bar'); $instance->setMaxRecursionDepth(1); $this->assertEquals(0, $instance->get('Foo')); $instance->mark('Foo'); $instance->mark('Foo'); $this->assertEquals(2, $instance->get('Foo')); $this->assertTrue($instance->isCircularByRecursionFor('Foo')); $instance->unmark('Foo'); $this->assertEquals(1, $instance->get('Foo')); $this->assertFalse($instance->isCircularByRecursionFor('Foo')); $instance->unmark('notBeenMarkedBefore'); }
/** * @since 2.2 * * @return QueryEngine */ public function newMasterQueryEngine() { $engineOptions = new EngineOptions(); $propertyHierarchyLookup = new PropertyHierarchyLookup($this->store, $this->applicationFactory->newCacheFactory()->newFixedInMemoryCache(500)); $propertyHierarchyLookup->setSubcategoryDepth($this->applicationFactory->getSettings()->get('smwgQSubcategoryDepth')); $propertyHierarchyLookup->setSubpropertyDepth($this->applicationFactory->getSettings()->get('smwgQSubpropertyDepth')); $circularReferenceGuard = new CircularReferenceGuard('sparql-query'); $circularReferenceGuard->setMaxRecursionDepth(2); $compoundConditionBuilder = new CompoundConditionBuilder($engineOptions); $compoundConditionBuilder->setCircularReferenceGuard($circularReferenceGuard); $compoundConditionBuilder->setPropertyHierarchyLookup($propertyHierarchyLookup); $queryEngine = new QueryEngine($this->store->getConnection('sparql'), $compoundConditionBuilder, new QueryResultFactory($this->store), $engineOptions); return $queryEngine; }
/** * @since 2.3 * * @return CachedValueLookupStore */ public function newCachedValueLookupStore() { $circularReferenceGuard = new CircularReferenceGuard('vl:store'); $circularReferenceGuard->setMaxRecursionDepth(2); $cacheFactory = ApplicationFactory::getInstance()->newCacheFactory(); $blobStore = new BlobStore('smw:vl:store', $cacheFactory->newMediaWikiCompositeCache($GLOBALS['smwgValueLookupCacheType'])); // If CACHE_NONE is selected, disable the usage $blobStore->setUsageState($GLOBALS['smwgValueLookupCacheType'] !== CACHE_NONE); $blobStore->setExpiryInSeconds($GLOBALS['smwgValueLookupCacheLifetime']); $blobStore->setNamespacePrefix($cacheFactory->getCachePrefix()); $cachedValueLookupStore = new CachedValueLookupStore($this->store, $blobStore); $cachedValueLookupStore->setValueLookupFeatures($GLOBALS['smwgValueLookupFeatures']); $cachedValueLookupStore->setCircularReferenceGuard($circularReferenceGuard); return $cachedValueLookupStore; }
/** * @since 2.5 * * @return EntityLookup */ public function newEntityLookup() { $settings = $this->applicationFactory->getSettings(); $directEntityLookup = new DirectEntityLookup($this->store); if ($settings->get('smwgValueLookupCacheType') === CACHE_NONE) { return $directEntityLookup; } $circularReferenceGuard = new CircularReferenceGuard('vl:store'); $circularReferenceGuard->setMaxRecursionDepth(2); $cacheFactory = $this->applicationFactory->newCacheFactory(); $blobStore = $cacheFactory->newBlobStore('smw:vl:store', $settings->get('smwgValueLookupCacheType'), $settings->get('smwgValueLookupCacheLifetime')); $cachedEntityLookup = new CachedEntityLookup($directEntityLookup, new RedirectTargetLookup($this->store, $circularReferenceGuard), $blobStore); $cachedEntityLookup->setCachedLookupFeatures($settings->get('smwgValueLookupFeatures')); return $cachedEntityLookup; }