/** * Delete a subclass * * @access public * @author Joel Bout, <*****@*****.**> * @param Class clazz * @return boolean */ public function deleteClass(core_kernel_classes_Class $clazz) { $returnValue = (bool) false; if ($clazz->isSubClassOf($this->getRootClass()) && !$clazz->equals($this->getRootClass())) { $returnValue = $clazz->delete(); } else { common_Logger::w('Tried to delete class ' . $clazz->getUri() . ' as if it were a subclass of ' . $this->getRootClass()->getUri()); } return (bool) $returnValue; }
public function testContext() { $this->assertEquals(count($this->targetSubjectClass->getInstances()), 1); $this->assertEquals(count($this->targetSubjectSubClass->getInstances()), 1); $this->assertEquals(count($this->targetSubjectClass->getInstances()), 1); // If get instances in the sub classes of the targetSubjectClass, we should get 2 instances $this->assertEquals(count($this->targetSubjectClass->getInstances(true)), 2); $this->assertTrue($this->targetMovieClass->isSubClassOf($this->targetWorkClass)); $this->assertEquals(count($this->targetWorkClass->getSubClasses()), 1); $this->assertTrue($this->targetProducerProperty->isMultiple()); }
protected function verifyParams($params) { $this->finalReport = new \common_report_Report(\common_report_Report::TYPE_SUCCESS); $class_uri = array_shift($params); $deliveryRootClass = DeliveryAssemblyService::singleton()->getRootClass(); if (is_null($class_uri)) { $deliveryClass = $deliveryRootClass; } else { $deliveryClass = new \core_kernel_classes_Class($class_uri); if (!$deliveryClass->isSubClassOf($deliveryRootClass)) { $msg = "Usage: php index.php '" . __CLASS__ . "' [CLASS_URI]" . PHP_EOL; $msg .= "CLASS_URI : a valid delivery class uri" . PHP_EOL . PHP_EOL; $msg .= "Uri : " . $class_uri . " is not a valid delivery class" . PHP_EOL; $this->finalReport->add(\common_report_Report::createFailure($msg)); } } $this->deliveryClass = $deliveryClass; }
/** * Delete a subclass * * @access public * @author Joel Bout, <*****@*****.**> * @param core_kernel_classes_Class $clazz * @return boolean */ public function deleteClass(core_kernel_classes_Class $clazz) { $returnValue = (bool) false; if ($clazz->isSubClassOf($this->getRootClass()) && !$clazz->equals($this->getRootClass())) { $returnValue = true; $subclasses = $clazz->getSubClasses(false); foreach ($subclasses as $subclass) { $returnValue = $returnValue && $this->deleteClass($subclass); } foreach ($clazz->getProperties() as $classProperty) { $returnValue = $returnValue && $this->deleteClassProperty($classProperty); } $returnValue = $returnValue && $clazz->delete(); } else { common_Logger::w('Tried to delete class ' . $clazz->getUri() . ' as if it were a subclass of ' . $this->getRootClass()->getUri()); } return (bool) $returnValue; }
/** * * @param string $path * @return \core_kernel_classes_Class */ private function getOrCreatePath($path) { if ($path === '') { $clazz = $this->getRootClass(); } else { $clazz = new \core_kernel_classes_Class(\tao_helpers_uri::decode($path)); if (!$clazz->isSubClassOf($this->getRootClass()) && !$clazz->equals($this->getRootClass()) && !$clazz->exists()) { // consider $path to be a label $found = false; foreach ($this->getRootClass()->getSubClasses() as $subclass) { if ($subclass->getLabel() === $path) { $found = true; $clazz = $subclass; break; } } if (!$found) { $clazz = $this->getRootClass()->createSubClass($path); } } } return $clazz; }
public function testIsSubClassOf() { $class = new core_kernel_classes_Class(GENERIS_BOOLEAN); $subClass = $class->createSubClass('test', 'test'); $this->assertTrue($class->isSubClassOf(new core_kernel_classes_Class(CLASS_GENERIS_RESOURCE))); $this->assertTrue($subClass->isSubClassOf($class)); $this->assertFalse($subClass->isSubClassOf($subClass)); $this->assertTrue($subClass->isSubClassOf(new core_kernel_classes_Class(CLASS_GENERIS_RESOURCE))); $subClass->delete(); }