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()); }
/** * 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); } }
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')); }