public function testSetLastModified() { $instance = new SemanticData(new DIWikiPage('Foo', NS_MAIN)); $instance->setLastModified(1001); $this->assertEquals(1001, $instance->getLastModified()); }
/** * Add data about subobjects. * Will only work if the data that is added is about a subobject of * this SMWSemanticData's subject. Otherwise an exception is thrown. * The SMWSemanticData object that is given will belong to this object * after the operation; it should not be modified further by the caller. * * @since 1.8 * * @param SemanticData $semanticData * * @throws MWException if not adding data about a subobject of this data */ public function addSubSemanticData(SemanticData $semanticData) { $semanticData->setLastModified($this->getLastModified()); $this->hash = null; if ($this->subContainerDepthCounter > $this->subContainerMaxDepth) { throw new MWException("Cannot add further subdata. You are trying to add data beyond the max depth of {$this->subContainerMaxDepth} to an SemanticData object."); } $subobjectName = $semanticData->getSubject()->getSubobjectName(); if ($subobjectName == '') { throw new MWException("Cannot add data that is not about a subobject."); } if ($semanticData->getSubject()->getDBkey() !== $this->getSubject()->getDBkey()) { throw new MWException("Data for a subobject of {$semanticData->getSubject()->getDBkey()} cannot be added to {$this->getSubject()->getDBkey()}."); } if ($this->hasSubSemanticData($subobjectName)) { $this->subSemanticData[$subobjectName]->importDataFrom($semanticData); foreach ($semanticData->getSubSemanticData() as $subsubdata) { $this->addSubSemanticData($subsubdata); } } else { $semanticData->subContainerDepthCounter++; foreach ($semanticData->getSubSemanticData() as $subsubdata) { // Skip container that are known to be registered (avoids recursive statement extension) if ($this->hasSubSemanticData($subsubdata->getSubject()->getSubobjectName())) { continue; } $this->addSubSemanticData($subsubdata); } $semanticData->subSemanticData = array(); $this->subSemanticData[$subobjectName] = $semanticData; } }