public static function deepDelete(\core_kernel_classes_Resource $resource)
 {
     foreach ($resource->getRdfTriples() as $triple) {
         self::deleteDependencies($triple);
     }
     $resource->delete();
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 /**
  * (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());
 }
Ejemplo n.º 5
0
 /**
  * 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);
         }
     }
 }
Ejemplo n.º 6
0
 /**
  *
  * @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;
 }