/**
  * Short description of method cloneInstance
  *
  * @access public
  * @author Joel Bout, <*****@*****.**>
  * @param \core_kernel_classes_Resource $instance
  * @param \core_kernel_classes_Class $clazz
  * @throws \common_Exception
  * @throws \core_kernel_classes_EmptyProperty
  * @return core_kernel_classes_Resource
  */
 public function cloneInstance(\core_kernel_classes_Resource $instance, \core_kernel_classes_Class $clazz = null)
 {
     $loginProperty = new \core_kernel_classes_Property(PROPERTY_USER_LOGIN);
     $login = $instance->getUniquePropertyValue($loginProperty);
     $returnValue = parent::cloneInstance($instance, $clazz);
     $userService = \tao_models_classes_UserService::singleton();
     try {
         while ($userService->loginExists($login)) {
             $login .= (string) rand(0, 9);
         }
         $returnValue->editPropertyValues($loginProperty, $login);
     } catch (common_Exception $ce) {
         // empty
     }
     return $returnValue;
 }
 public function cloneInstance(core_kernel_classes_Resource $instance, core_kernel_classes_Class $clazz = null)
 {
     $result = parent::cloneInstance($instance, $clazz);
     if ($result) {
         $this->getEventManager()->trigger(new ItemDuplicatedEvent($instance->getUri(), $result->getUri()));
     }
     return $result;
 }