2 namespace wcf\data\conversation\message
;
3 use wcf\data\user\UserProfile
;
4 use wcf\data\DatabaseObjectDecorator
;
5 use wcf\data\TLegacyUserPropertyAccess
;
6 use wcf\system\cache\runtime\UserProfileRuntimeCache
;
9 * Represents a viewable conversation message.
12 * @copyright 2001-2019 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 * @package WoltLabSuite\Core\Data\Conversation\Message
16 * @method ConversationMessage getDecoratedObject()
17 * @mixin ConversationMessage
19 class ViewableConversationMessage
extends DatabaseObjectDecorator
{
20 use TLegacyUserPropertyAccess
;
25 protected static $baseClass = ConversationMessage
::class;
31 protected $userProfile;
34 * Returns the user profile object.
38 public function getUserProfile() {
39 if ($this->userProfile
=== null) {
41 $this->userProfile
= UserProfileRuntimeCache
::getInstance()->getObject($this->userID
);
44 $this->userProfile
= UserProfile
::getGuestUserProfile($this->username
);
48 return $this->userProfile
;
52 * Returns the viewable conversation message with the given id.
54 * @param integer $messageID
55 * @return ViewableConversationMessage
57 public static function getViewableConversationMessage($messageID) {
58 $messageList = new ViewableConversationMessageList();
59 $messageList->setObjectIDs([$messageID]);
60 $messageList->readObjects();
62 return $messageList->search($messageID);