public function testGetPropertyMap() { $this->assertFileExists(__DIR__ . '/sample/test.xml'); $dir = $this->getTempDirectory(); $file = $dir->getFile('/sample/test.xml'); $file->put(file_get_contents(__DIR__ . '/sample/test.xml')); /** @var FileReferenceSerializer $serializer */ $serializer = ServiceManager::getServiceManager()->get(FileReferenceSerializer::SERVICE_ID); $fileUri = $serializer->serialize($file); //see if clone file works $rdfsTriple = new \core_kernel_classes_Triple(); $rdfsTriple->predicate = "http://www.w3.org/1999/02/22-rdf-syntax-ns#value"; $rdfsTriple->object = $fileUri; $return = CloneHelper::getPropertyStorageMap([$rdfsTriple]); $this->assertEquals($dir->getFileSystemId(), reset($return)); }
/** * (non-PHPdoc) * @see \oat\taoRevision\model\Repository::restore() */ public function restore(Revision $revision) { $resourceId = $revision->getResourceId(); $data = $this->getStorage()->getData($revision); $resource = new \core_kernel_classes_Resource($resourceId); $originFilesystemMap = CloneHelper::getPropertyStorageMap($resource->getRdfTriples()); DeleteHelper::deepDelete($resource); foreach (CloneHelper::deepCloneTriples($data, $originFilesystemMap) as $triple) { ModelManager::getModel()->getRdfInterface()->add($triple); } return true; }