<?php
namespace Proxies\__CG__\Application\DeskPRO\Entity;
/**
 * THIS CLASS WAS GENERATED BY THE DOCTRINE ORM. DO NOT EDIT THIS FILE.
 */
class Ticket extends \Application\DeskPRO\Entity\Ticket implements \Doctrine\ORM\Proxy\Proxy
{
    protected $__entityPersister__;
	public $_dp_object_translatable;
    protected $__identifier__;
    public $__isInitialized__ = false;
    public function __construct($entityPersister, $identifier)
    {
        $this->__entityPersister__ = $entityPersister;
        $this->__identifier__ = $identifier;
    }
    /** @private */
    public function __load()
    {
        if (!$this->__isInitialized__ && $this->__entityPersister__) {
            $this->__isInitialized__ = true;
            if (method_exists($this, "__wakeup")) {
                // call this after __isInitialized__to avoid infinite recursion
                // but before loading to emulate what ClassMetadata::newInstance()
                // provides.
                $this->__wakeup();
            }
            if ($this->__entityPersister__->load($this->__identifier__, $this) === null) {
                throw new \Doctrine\ORM\EntityNotFoundException();
            }
            unset($this->__entityPersister__, $this->__identifier__);
        }
    }
    /** @private */
    public function __isInitialized()
    {
        return $this->__isInitialized__;
    }
    
    public function getId()
    {
        if ($this->__isInitialized__ === false) {
            return (int) $this->__identifier__["id"];
        }
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getId();
    }

    public function setNoLog()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setNoLog();
    }

    public function isLoggingDisabled()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isLoggingDisabled();
    }

    public function _initTicketLogger()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_initTicketLogger();
    }

    public function getSubject()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getSubject();
    }

    public function getSentToAddresses()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getSentToAddresses();
    }

    public function hasSentToAddress($address)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::hasSentToAddress($address);
    }

    public function setSentToAddress($addresses)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setSentToAddress($addresses);
    }

    public function setSubject($subject)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setSubject($subject);
    }

    public function setProcessedOriginalSubject($subject)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setProcessedOriginalSubject($subject);
    }

    public function getUserParticipants()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getUserParticipants();
    }

    public function getAgentParticipants()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getAgentParticipants();
    }

    public function getOriginalParticipantIds()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getOriginalParticipantIds();
    }

    public function setAgentParticipants(array $agents)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setAgentParticipants($agents);
    }

    public function findUserByEmail($email_address)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::findUserByEmail($email_address);
    }

    public function findAgentByEmail($email_address)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::findAgentByEmail($email_address);
    }

    public function modifyUrgency($mod, $reset_on_reply = false)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::modifyUrgency($mod, $reset_on_reply);
    }

    public function setUrgency($set)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setUrgency($set);
    }

    public function setFeedbackRating($rating)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setFeedbackRating($rating);
    }

    public function getFeedbackRatingType()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getFeedbackRatingType();
    }

    public function getParticipantPeopleIds()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getParticipantPeopleIds();
    }

    public function getRawParticipants()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getRawParticipants();
    }

    public function setRawParticipants($parts)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setRawParticipants($parts);
    }

    public function hasParticipantEmailAddress($email_address)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::hasParticipantEmailAddress($email_address);
    }

    public function hasParticipantPerson($person_or_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::hasParticipantPerson($person_or_id);
    }

    public function addParticipantPerson($person_or_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addParticipantPerson($person_or_id);
    }

    public function removeParticipantPerson($person_or_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::removeParticipantPerson($person_or_id);
    }

    public function addParticipant(\Application\DeskPRO\Entity\TicketParticipant $part)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addParticipant($part);
    }

    public function setParticipantAgentIds(array $set_agent_ids)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setParticipantAgentIds($set_agent_ids);
    }

    public function setParticipantUserIds(array $set_user_ids)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setParticipantUserIds($set_user_ids);
    }

    public function addCharge(\Application\DeskPRO\Entity\Person $agent, $time, $amount = NULL, $comment = '')
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addCharge($agent, $time, $amount, $comment);
    }

    public function addSla(\Application\DeskPRO\Entity\Sla $sla)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addSla($sla);
    }

    public function removeSla(\Application\DeskPRO\Entity\Sla $sla)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::removeSla($sla);
    }

    public function removeAllSlas()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::removeAllSlas();
    }

    public function hasSla(\Application\DeskPRO\Entity\Sla $sla)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::hasSla($sla);
    }

    public function getSlaById($sla_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getSlaById($sla_id);
    }

    public function getSlaIds()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getSlaIds();
    }

    public function addMessage(\Application\DeskPRO\Entity\TicketMessage $message)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addMessage($message);
    }

    public function addAttachment(\Application\DeskPRO\Entity\TicketAttachment $attach)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addAttachment($attach);
    }

    public function getCustomDataForField($field_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getCustomDataForField($field_id);
    }

    public function getCustomFieldDisplayArray($field_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getCustomFieldDisplayArray($field_id);
    }

    public function setCustomData($field_id, $value_type, $value)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setCustomData($field_id, $value_type, $value);
    }

    public function removeCustomDataForField($field)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::removeCustomDataForField($field);
    }

    public function addCustomData(\Application\DeskPRO\Entity\CustomDataTicket $data)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addCustomData($data);
    }

    public function hasCustomField($field_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::hasCustomField($field_id);
    }

    public function renderCustomField($field_id, $context = 'html')
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::renderCustomField($field_id, $context);
    }

    public function addLabel(\Application\DeskPRO\Entity\LabelTicket $label)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addLabel($label);
    }

    public function getPersonId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getPersonId();
    }

    public function setPersonId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setPersonId($id);
    }

    public function setPerson(\Application\DeskPRO\Entity\Person $person)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setPerson($person);
    }

    public function setPersonEmail(\Application\DeskPRO\Entity\PersonEmail $email = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setPersonEmail($email);
    }

    public function getPersonEmail()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getPersonEmail();
    }

    public function getPersonEmailAddress()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getPersonEmailAddress();
    }

    public function getDepartmentId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getDepartmentId();
    }

    public function setDepartmentId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setDepartmentId($id);
    }

    public function setDepartment(\Application\DeskPRO\Entity\Department $dep = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setDepartment($dep);
    }

    public function isLangSet()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isLangSet();
    }

    public function getRealLanguage()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getRealLanguage();
    }

    public function getLanguage()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getLanguage();
    }

    public function getLanguageId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getLanguageId();
    }

    public function setLanguageId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setLanguageId($id);
    }

    public function getCategoryId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getCategoryId();
    }

    public function setCategoryId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setCategoryId($id);
    }

    public function getProductId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getProductId();
    }

    public function setProductId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setProductId($id);
    }

    public function getPriorityId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getPriorityId();
    }

    public function setPriorityId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setPriorityId($id);
    }

    public function getWorkflowId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getWorkflowId();
    }

    public function setWorkflowId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setWorkflowId($id);
    }

    public function getAgentId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getAgentId();
    }

    public function setAgentId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setAgentId($id);
    }

    public function getAgentTeamId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getAgentTeamId();
    }

    public function setAgentTeamId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setAgentTeamId($id);
    }

    public function getEmailGatewayId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getEmailGatewayId();
    }

    public function setEmailGatewayId($id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setEmailGatewayId($id);
    }

    public function getIsAssigned()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getIsAssigned();
    }

    public function getAssignedName()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getAssignedName();
    }

    public function setLockedByAgentId($agent_id)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setLockedByAgentId($agent_id);
    }

    public function setLockedByAgent(\Application\DeskPRO\Entity\Person $agent = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setLockedByAgent($agent);
    }

    public function unlockTicket()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::unlockTicket();
    }

    public function getIsLocked()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getIsLocked();
    }

    public function hasLock()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::hasLock();
    }

    public function isLocked(\Application\DeskPRO\Entity\Person $current_agent = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isLocked($current_agent);
    }

    public function getIsArchived()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getIsArchived();
    }

    public function getDisplayableMessages()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getDisplayableMessages();
    }

    public function setFlagForPerson($person, $color = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setFlagForPerson($person, $color);
    }

    public function getDeletionRecord()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getDeletionRecord();
    }

    public function isHidden()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isHidden();
    }

    public function getIsHidden()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getIsHidden();
    }

    public function isDeleted()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isDeleted();
    }

    public function isArchived()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isArchived();
    }

    public function getIsDeleted()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getIsDeleted();
    }

    public function getRealTotalUserWaiting()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getRealTotalUserWaiting();
    }

    public function getTotalUserWaitingWorkTime()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getTotalUserWaitingWorkTime();
    }

    public function getCurrentUserWaitingTime()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getCurrentUserWaitingTime();
    }

    public function getCurrentUserWaitingWorkTime()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getCurrentUserWaitingWorkTime();
    }

    public function getWorkTimeToFirstReply()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getWorkTimeToFirstReply();
    }

    public function getTimeUntilResolution()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getTimeUntilResolution();
    }

    public function getWorkTimeUntilResolution()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getWorkTimeUntilResolution();
    }

    public function getLastActivityDate()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getLastActivityDate();
    }

    public function setStatus($status)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setStatus($status);
    }

    public function setHiddenStatus($hstatus)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setHiddenStatus($hstatus);
    }

    public function getStatusCode()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getStatusCode();
    }

    public function setIsHold($is_hold)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setIsHold($is_hold);
    }

    public function recalculateSlaDates()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::recalculateSlaDates();
    }

    public function resetSlaStatuses()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::resetSlaStatuses();
    }

    public function undeleteTicket()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::undeleteTicket();
    }

    public function deleteTicket($person = NULL, $reason = '')
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::deleteTicket($person, $reason);
    }

    public function updateWorstSlaStatus()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::updateWorstSlaStatus();
    }

    public function getWorstSlaStatus()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getWorstSlaStatus();
    }

    public function addWaitingTimeRecord($type, $start_ts, $end_ts = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addWaitingTimeRecord($type, $start_ts, $end_ts);
    }

    public function getWaitingTimes()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getWaitingTimes();
    }

    public function addAccessCodeForPerson(\Application\DeskPRO\Entity\Person $person)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::addAccessCodeForPerson($person);
    }

    public function findAccessCodeForPerson(\Application\DeskPRO\Entity\Person $person)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::findAccessCodeForPerson($person);
    }

    public function findAccessCode($auth)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::findAccessCode($auth);
    }

    public function findEmailForPerson(\Application\DeskPRO\Entity\Person $person)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::findEmailForPerson($person);
    }

    public function getAccessCode()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getAccessCode();
    }

    public function getUniqueEmailMessageId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getUniqueEmailMessageId();
    }

    public function getEmailReferencesHeader()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getEmailReferencesHeader();
    }

    public function getPublicId()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getPublicId();
    }

    public function isFromGateway()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isFromGateway();
    }

    public function getTicketHash()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getTicketHash();
    }

    public function recomputeHash()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::recomputeHash();
    }

    public function initHashCode()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::initHashCode();
    }

    public function _preInsert()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_preInsert();
    }

    public function _preUpdate()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_preUpdate();
    }

    public function _applySlas()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_applySlas();
    }

    public function _presaveTicketLogs()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_presaveTicketLogs();
    }

    public function resetTicketLogger()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::resetTicketLogger();
    }

    public function unsetTicketLogger()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::unsetTicketLogger();
    }

    public function _autoSaveTicketLogs()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_autoSaveTicketLogs();
    }

    public function _saveTicketLogs()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_saveTicketLogs();
    }

    public function getTicketLogger()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getTicketLogger();
    }

    public function getLabelManager()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getLabelManager();
    }

    public function copy()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::copy();
    }

    public function _markRemoved()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_markRemoved();
    }

    public function toApiData($primary = true, $deep = true, array $visited = array (
))
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::toApiData($primary, $deep, $visited);
    }

    public function replaceVarsInString($string, \Application\DeskPRO\Entity\Person $performer = NULL, $escape = false, $to_user = true)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::replaceVarsInString($string, $performer, $escape, $to_user);
    }

    public function getPath()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getPath();
    }

    public function getLink()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getLink();
    }

    public function isAgentCreated()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::isAgentCreated();
    }

    public function getWorkHoursSet()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getWorkHoursSet();
    }

    public function getProperty($key, $default = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getProperty($key, $default);
    }

    public function setProperty($key, $value)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setProperty($key, $value);
    }

    public function recountStats()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::recountStats();
    }

    public function getFromAddress($context = 'user', array $options = NULL)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getFromAddress($context, $options);
    }

    public function disableChangetrackerAutocommit()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::disableChangetrackerAutocommit();
    }

    public function getObjectRef()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getObjectRef();
    }

    public function setUntrackedModelField($field, $value)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::setUntrackedModelField($field, $value);
    }

    public function getScalarData()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getScalarData();
    }

    public function _setNoPersist()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_setNoPersist();
    }

    public function _isNoPersist()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::_isNoPersist();
    }

    public function __toString()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::__toString();
    }

    public function fromArray(array $values)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::fromArray($values);
    }

    public function toArray($mode = 1)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::toArray($mode);
    }

    public function getKeys()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getKeys();
    }

    public function getFieldKeys()
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::getFieldKeys();
    }

    public function propertyFieldExists($field)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::propertyFieldExists($field);
    }

    public function get($name)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::get($name);
    }

    public function set($name, $value)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::set($name, $value);
    }

    public function __get($name)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::__get($name);
    }

    public function __set($name, $value)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::__set($name, $value);
    }

    public function __isset($name)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::__isset($name);
    }

    public function __unset($name)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::__unset($name);
    }

    public function __call($name, $arguments)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::__call($name, $arguments);
    }

    public function offsetExists($offset)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::offsetExists($offset);
    }

    public function offsetSet($offset, $value)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::offsetSet($offset, $value);
    }

    public function offsetGet($offset)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::offsetGet($offset);
    }

    public function offsetUnset($offset)
    {
        if ($this->__isInitialized__ === false) $this->__load();
        return parent::offsetUnset($offset);
    }

	public function __getPropValue__($k) { return $this->$k; }
	public function __setPropValue__($k, $v) { $this->$k = $v; }
	public function __hasRunLoad__() { if (isset($this->__entityPersister__)) return false; return true; }
    public function __sleep()
    {
        return array('__isInitialized__', 'id', 'ref', 'auth', 'sent_to_address', 'notify_email', 'notify_email_name', 'notify_email_agent', 'notify_email_name_agent', 'creation_system', 'creation_system_option', 'ticket_hash', 'status', 'hidden_status', 'validating', 'is_hold', 'urgency', 'count_agent_replies', 'count_user_replies', 'feedback_rating', 'date_feedback_rating', 'date_created', 'date_resolved', 'date_closed', 'date_first_agent_assign', 'date_first_agent_reply', 'date_last_agent_reply', 'date_last_user_reply', 'date_agent_waiting', 'date_user_waiting', 'date_status', 'total_user_waiting', 'total_to_first_reply', 'date_locked', 'has_attachments', 'subject', 'original_subject', 'properties', 'worst_sla_status', 'waiting_times', 'parent_ticket', 'language', 'department', 'category', 'priority', 'workflow', 'product', 'person', 'person_email', 'person_email_validating', 'agent', 'agent_team', 'organization', 'linked_chat', 'attachments', 'access_codes', 'messages', 'custom_data', 'labels', 'email_gateway', 'email_gateway_address', 'locked_by_agent', 'participants', 'charges', 'ticket_slas');
    }
    public function __clone()
    {
        if (!$this->__isInitialized__ && $this->__entityPersister__) {
            $this->__isInitialized__ = true;
            $class = $this->__entityPersister__->getClassMetadata();
            $original = $this->__entityPersister__->load($this->__identifier__);
            if ($original === null) {
                throw new \Doctrine\ORM\EntityNotFoundException();
            }
            foreach ($class->reflFields AS $field => $reflProperty) {
                $reflProperty->setValue($this, $reflProperty->getValue($original));
            }
            unset($this->__entityPersister__, $this->__identifier__);
        }
        parent::__clone();
    }
}