/** * @param Message $message * @param User $from * * @return MessageValueObject */ private function populateMessageValueObject(Message $message, User $from = null) { if (null === $from) { $from = $message->getUser(); } if (null === $from) { throw new InvalidParameterException('You must provide the user who wrote the message'); } $from = $this->populateUserValueObject($from); $conversation = $message->getConversation()->getId(); return new MessageValueObject($message->getId(), $from, $conversation, $message->getText()); }