/** * (non-PHPdoc) * @see core_kernel_persistence_ClassInterface::createInstance() */ public function createInstance(core_kernel_classes_Class $resource, $label = '', $comment = '', $uri = '') { $returnValue = null; $subject = ''; if ($uri == '') { $subject = common_Utils::getNewUri(); } else { if ($uri[0] == '#') { //$uri should start with # and be well formed $modelUri = common_ext_NamespaceManager::singleton()->getLocalNamespace()->getUri(); $subject = rtrim($modelUri, '#') . $uri; } else { $subject = $uri; } } $returnValue = new core_kernel_classes_Resource($subject, __METHOD__); if (!$returnValue->hasType($resource)) { $returnValue->setType($resource); } else { common_Logger::e('already had type ' . $resource); } if (!empty($label)) { $returnValue->setLabel($label); } if (!empty($comment)) { $returnValue->setComment($comment); } return $returnValue; }