package net.sf.kraken.util.chatstate; import java.util.EventObject; import net.jcip.annotations.Immutable; import net.sf.kraken.type.ChatStateType; import org.xmpp.packet.JID; /** * An event that indicates that a chat state status has changed. * * Instances of this class are immutable. * * @author Guus der Kinderen * @see <a * href="http://xmpp.org/extensions/xep-0085.html">XEP-0085: Chat State Notifications</a> */ @Immutable public class ChatStateChangeEvent extends EventObject { /** * The entity that originates the chat state notification. */ public final JID sender; /** * The entity that is the recipient of the chat state notification. */ public final JID receiver; /** * The type of chat state notification to which is being changed. */ public final ChatStateType type; /** * Instantiates a new event that signals that a particular entity changed * its state of a chat in a particular conversation with another entity. * * @param sender * The entity that originates the chat state notification. * @param receiver * The entity that is the recipient of the chat state * notification. * @param type * The type of chat state notification to which is being changed. */ public ChatStateChangeEvent(JID sender, JID receiver, ChatStateType type) { super(sender); this.sender = sender; this.receiver = receiver; this.type = type; } /** * The entity that originates the chat state notification. * * @return the entity that originates the chat state notification. */ public JID getSender() { return sender; } /** * The entity that is the recipient of the chat state notification. * * @return the entity that is the recipient of the chat state notification. */ public JID getReceiver() { return receiver; } /** * The type of chat state notification to which is being changed. * * @return The type of chat state notification to which is being changed. */ public ChatStateType getType() { return type; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { final StringBuilder builder = new StringBuilder(); builder.append("ChatStateEvent [receiver="); builder.append(receiver); builder.append(", sender="); builder.append(sender); builder.append(", type="); builder.append(type); builder.append("]"); return builder.toString(); } }