/** * @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; }
/** * @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; }
public function testConceptDescriptionInterpreterForAnyValueConceptUsingMockedStore() { $circularReferenceGuard = $this->getMockBuilder('\\SMW\\CircularReferenceGuard')->disableOriginalConstructor()->getMock(); $semanticData = $this->getMockBuilder('\\SMW\\SemanticData')->disableOriginalConstructor()->getMock(); $semanticData->expects($this->once())->method('getPropertyValues')->with($this->equalTo(new DIProperty('_CONC')))->will($this->returnValue(array(new DIConcept('[[Foo::+]]', 'Bar', 1, 0, 0)))); $store = $this->getMockBuilder('\\SMW\\Store')->disableOriginalConstructor()->getMockForAbstractClass(); $store->expects($this->any())->method('getSemanticData')->with($this->equalTo(new DIWikiPage('Foo', SMW_NS_CONCEPT)))->will($this->returnValue($semanticData)); $this->applicationFactory = ApplicationFactory::getInstance(); $this->applicationFactory->registerObject('Store', $store); $description = new ConceptDescription(new DIWikiPage('Foo', SMW_NS_CONCEPT)); $orderByProperty = null; $resultVariable = 'result'; $compoundConditionBuilder = new CompoundConditionBuilder(); $compoundConditionBuilder->setResultVariable($resultVariable); $compoundConditionBuilder->setCircularReferenceGuard($circularReferenceGuard); $compoundConditionBuilder->setJoinVariable($resultVariable); $compoundConditionBuilder->setOrderByProperty($orderByProperty); $instance = new ConceptDescriptionInterpreter($compoundConditionBuilder); $condition = $instance->interpretDescription($description); $expectedConditionString = UtilityFactory::getInstance()->newStringBuilder()->addString('?result property:Foo ?v1 .')->addNewLine()->getString(); $this->assertInstanceOf('\\SMW\\SPARQLStore\\QueryEngine\\Condition\\WhereCondition', $condition); $this->assertEquals($expectedConditionString, $compoundConditionBuilder->convertConditionToString($condition)); }