/**
* @param mixed $userId
* @param mixed $contentTypeId
* @param int $status One of Type::STATUS_DEFINED|Type::STATUS_DRAFT|Type::STATUS_MODIFIED
*
* @return Type
*/
public function copy($userId, $contentTypeId, $status)
{
$createStruct = $this->mapper->createCreateStructFromType($this->load($contentTypeId, $status));
$createStruct->modifierId = $userId;
$createStruct->created = $createStruct->modified = time();
$createStruct->creatorId = $userId;
$createStruct->remoteId = md5(uniqid(get_class($createStruct), true));
$createStruct->identifier = 'copy_of_' . $createStruct->identifier . '_' . $createStruct->remoteId;
// Set FieldDefinition ids to null to trigger creating new id
foreach ($createStruct->fieldDefinitions as $fieldDefinition) {
$fieldDefinition->id = null;
}
return $this->internalCreate($createStruct);
}