コード例 #1
0
 public function testHardModel()
 {
     $this->hardify();
     $referencer = ResourceReferencer::singleton();
     $propertyProxy = PropertyProxy::singleton();
     $proxy = ResourceProxy::singleton();
     $domainProperty = new core_kernel_classes_Property(RDFS_DOMAIN);
     $rangeProperty = new core_kernel_classes_Property(RDFS_RANGE);
     $literalClass = new core_kernel_classes_Class(RDFS_LITERAL);
     $subClassOfProperty = new core_kernel_classes_Property(RDFS_SUBCLASSOF);
     $this->assertTrue($this->targetActorsProperty->exists());
     $this->assertTrue($this->targetMovieClass->exists());
     $this->assertTrue($this->targetWorkClass->isSubclassOf($this->taoClass));
     $this->assertTrue($this->targetWorkClass->getOnePropertyValue($subClassOfProperty)->getUri() == $this->taoClass->getUri());
     $this->assertTrue($referencer->isClassReferenced($this->targetWorkClass));
     $this->assertFalse(is_a($proxy->getImpToDelegateTo($this->targetWorkClass), 'core_kernel_persistence_smoothsql_Class'));
     $this->assertFalse(is_a($proxy->getImpToDelegateTo($this->targetMovieClass), 'core_kernel_persistence_smoothsql_Class'));
     $this->assertTrue($this->targetAuthorProperty->getOnePropertyValue($domainProperty)->getUri() == $this->targetWorkClass->getUri());
     $this->assertTrue($this->targetAuthorProperty->getOnePropertyValue($rangeProperty)->getUri() == RDFS_LITERAL);
     $this->assertTrue($this->targetMovieClass->isSubclassOf($this->targetWorkClass));
     $this->assertTrue($this->targetMovieClass->getOnePropertyValue($subClassOfProperty)->getUri() == $this->targetWorkClass->getUri());
     $this->assertTrue($referencer->isClassReferenced($this->targetMovieClass));
     $this->assertTrue($this->targetProducerProperty->getOnePropertyValue($domainProperty)->getUri() == $this->targetMovieClass->getUri());
     $this->assertTrue($this->targetProducerProperty->getOnePropertyValue($rangeProperty)->getUri() == RDFS_LITERAL);
     $this->assertTrue($this->targetActorsProperty->getOnePropertyValue($domainProperty)->getUri() == $this->targetMovieClass->getUri());
     $this->assertTrue($this->targetActorsProperty->getOnePropertyValue($rangeProperty)->getUri() == RDFS_LITERAL);
     $this->assertTrue($this->targetRelatedMoviesProperty->getOnePropertyValue($domainProperty)->getUri() == $this->targetMovieClass->getUri());
     $this->assertTrue($this->targetRelatedMoviesProperty->getOnePropertyValue($rangeProperty)->getUri() == $this->targetMovieClass->getUri());
     $parentClasses = $this->targetMovieClass->getParentClasses();
     $this->assertEquals(1, count($parentClasses));
     $this->assertTrue(array_key_exists($this->targetWorkClass->getUri(), $parentClasses));
     $prop = new core_kernel_classes_Property($this->targetRelatedMoviesProperty);
     $this->assertTrue($prop->isMultiple());
 }
コード例 #2
0
 /**
  * Returns the storage engine of the result server
  * 
  * @param string $deliveryId
  * @throws \common_exception_Error
  * @return \taoResultServer_models_classes_ReadableResultStorage
  */
 public function getResultStorage($deliveryId)
 {
     if (is_null($deliveryId)) {
         throw new \common_exception_Error(__('This delivery doesn\'t exists'));
     }
     $delivery = $this->getResource($deliveryId);
     $deliveryResultServer = $delivery->getOnePropertyValue($this->getProperty(self::PROPERTY_RESULT_SERVER));
     if (is_null($deliveryResultServer)) {
         throw new \common_exception_Error(__('This delivery has no Result Server'));
     }
     $resultServerModel = $deliveryResultServer->getPropertyValues($this->getProperty(TAO_RESULTSERVER_MODEL_PROP));
     if (is_null($resultServerModel)) {
         throw new \common_exception_Error(__('This delivery has no readable Result Server'));
     }
     $implementations = array();
     foreach ($resultServerModel as $model) {
         $model = new \core_kernel_classes_Class($model);
         /** @var $implementationClass \core_kernel_classes_Literal*/
         $implementationClass = $model->getOnePropertyValue($this->getProperty(TAO_RESULTSERVER_MODEL_IMPL_PROP));
         if (!is_null($implementationClass) && class_exists($implementationClass->literal)) {
             $className = $implementationClass->literal;
             $implementations[] = new $className();
         }
     }
     if (empty($implementations)) {
         throw new \common_exception_Error(__('This delivery has no readable Result Server'));
     } elseif (count($implementations) == 1) {
         return reset($implementations);
     } else {
         return new StorageAggregation($implementations);
     }
 }
コード例 #3
0
 private function getImplementationClass($delivery)
 {
     if (is_null($delivery)) {
         throw new \common_exception_Error(__('This delivery doesn\'t exists'));
     }
     $deliveryResultServer = $delivery->getOnePropertyValue(new \core_kernel_classes_Property(TAO_DELIVERY_RESULTSERVER_PROP));
     if (is_null($deliveryResultServer)) {
         throw new \common_exception_Error(__('This delivery has no Result Server'));
     }
     $resultServerModel = $deliveryResultServer->getPropertyValues(new \core_kernel_classes_Property(TAO_RESULTSERVER_MODEL_PROP));
     if (is_null($resultServerModel)) {
         throw new \common_exception_Error(__('This delivery has no readable Result Server'));
     }
     foreach ($resultServerModel as $model) {
         $model = new \core_kernel_classes_Class($model);
         /** @var $implementationClass \core_kernel_classes_Literal*/
         $implementationClass = $model->getOnePropertyValue(new \core_kernel_classes_Property(TAO_RESULTSERVER_MODEL_IMPL_PROP));
         if (!is_null($implementationClass) && class_exists($implementationClass->literal) && in_array('taoResultServer_models_classes_ReadableResultStorage', class_implements($implementationClass->literal))) {
             $className = $implementationClass->literal;
             if (!class_exists($className)) {
                 throw new \common_exception_Error('readable resultinterface implementation ' . $className . ' not found');
             }
             return new $className();
         }
     }
     throw new \common_exception_Error(__('This delivery has no readable Result Server'));
 }