public static function deepDelete(\core_kernel_classes_Resource $resource) { foreach ($resource->getRdfTriples() as $triple) { self::deleteDependencies($triple); } $resource->delete(); }
public function getResourceDescription(core_kernel_classes_Resource $resource, $fromDefinition = true) { $returnValue = new stdClass(); $properties = array(); if ($fromDefinition) { $types = $resource->getTypes(); foreach ($types as $type) { foreach ($type->getProperties(true) as $property) { //$this->$$property->getUri() = array($property->getLabel(),$this->getPropertyValues()); $properties[$property->getUri()] = $property; } } //var_dump($properties); $properties = array_unique($properties); $propertiesValues = $resource->getPropertiesValues($properties); if (count($propertiesValues) == 0) { throw new common_exception_NoContent(); } $propertiesValuesStdClasses = $this->propertiesValuestoStdClasses($propertiesValues); } else { $triples = $resource->getRdfTriples(); if (count($triples) == 0) { throw new common_exception_NoContent(); } foreach ($triples as $triple) { $properties[$triple->predicate][] = common_Utils::isUri($triple->object) ? new core_kernel_classes_Resource($triple->object) : new core_kernel_classes_Literal($triple->object); } $propertiesValuesStdClasses = $this->propertiesValuestoStdClasses($properties); } $returnValue->uri = $resource->getUri(); $returnValue->properties = $propertiesValuesStdClasses; return $returnValue; }
/** * (non-PHPdoc) * @see \oat\taoRevision\model\Repository::commit() */ public function commit($resourceId, $message, $version) { $user = \common_session_SessionManager::getSession()->getUser(); $userId = is_null($user) ? null : $user->getIdentifier(); $created = time(); // save data $resource = new \core_kernel_classes_Resource($resourceId); $data = CloneHelper::deepCloneTriples($resource->getRdfTriples()); $revision = $this->getStorage()->addRevision($resourceId, $version, $created, $userId, $message, $data); return $revision; }
public function testDeepDeleteTriples() { //create resources $repository = \tao_models_classes_FileSourceService::singleton()->addLocalSource("Label Test", \tao_helpers_File::createTempDir()); $file = $repository->createFile("test.xml", "sample"); //delete resource DeleteHelper::deepDeleteTriples($file->getRdfTriples()); DeleteHelper::deepDeleteTriples($repository->getRdfTriples()); //see if all is deleted //try to get the resource $resourceTest = new \core_kernel_classes_Resource($repository->getUri()); $fileTest = new \core_kernel_classes_Resource($file->getUri()); $this->assertCount(0, $resourceTest->getRdfTriples()); $this->assertCount(0, $fileTest->getRdfTriples()); }
/** * Add a resource to the graph * * @param EasyRdf_Graph $graph * @param core_kernel_classes_Resource $resource * @ignore */ private function addResource(EasyRdf_Graph $graph, core_kernel_classes_Resource $resource) { foreach ($resource->getRdfTriples() as $triple) { if (!empty($triple->lg)) { $graph->addLiteral($triple->subject, $triple->predicate, $triple->object, $triple->lg); } elseif (common_Utils::isUri($triple->object)) { $graph->add($triple->subject, $triple->predicate, $triple->object); } else { $graph->addLiteral($triple->subject, $triple->predicate, $triple->object); } } }
/** * * @author Patrick Plichart, patrick@taotesting.com * @param string $uri * @param array $propertiesValues * @throws common_exception_InvalidArgumentType * @throws common_exception_PreConditionFailure * @throws common_exception_NoContent * @return core_kernel_classes_Resource */ public function update($uri, $propertiesValues = array()) { if (!common_Utils::isUri($uri)) { throw new common_exception_InvalidArgumentType(); } if (!$this->isInScope($uri)) { throw new common_exception_PreConditionFailure("The URI must be a valid resource under the root Class"); } $resource = new core_kernel_classes_Resource($uri); // if the resource does not exist, indicate a not found exception if (count($resource->getRdfTriples()->sequence) == 0) { throw new common_exception_NoContent(); } foreach ($propertiesValues as $uri => $parameterValue) { $resource->editPropertyValues(new core_kernel_classes_Property($uri), $parameterValue); } return $resource; }
/** * (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; }