* @copyright 2014 Fabian Grutschus. All rights reserved. * @license BSD * @link http://github.com/fabiang/xmpp */ namespace Fabiang\Xmpp\Protocol; use Fabiang\Xmpp\Util\XML; /** * Protocol setting for Xmpp. * * @package Xmpp\Protocol */ class Message implements ProtocolImplementationInterface { /** * Chat between to users. */ const TYPE_CHAT = 'chat'; /** * Chat in a multi-user channel (MUC). */ const TYPE_GROUPCHAT = 'groupchat'; /** * Message type. * * @var string */ protected $type = self::TYPE_CHAT; /** * Set message receiver. * * @var string */ protected $to; /** * Message. * * @var string */ protected $message = ''; /** * Constructor. * * @param string $message * @param string $to * @param string $type */ public function __construct($message = '', $to = '', $type = self::TYPE_CHAT) { $this->setMessage($message)->setTo($to)->setType($type); } /** * {@inheritDoc} */ public function toString() { return XML::quoteMessage( '%s', $this->getType(), XML::generateId(), $this->getTo(), $this->getMessage() ); } /** * Get message type. * * @return string */ public function getType() { return $this->type; } /** * Set message type. * * See {@link self::TYPE_CHAT} and {@link self::TYPE_GROUPCHAT} * * @param string $type * @return $this */ public function setType($type) { $this->type = $type; return $this; } /** * Get message receiver. * * @return string */ public function getTo() { return $this->to; } /** * Set message receiver. * * @param string $to * @return $this */ public function setTo($to) { $this->to = (string) $to; return $this; } /** * Get message. * * @return string */ public function getMessage() { return $this->message; } /** * Set message. * * @param string $message * @return $this */ public function setMessage($message) { $this->message = (string) $message; return $this; } }