/* * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.service.protocol.event; import java.util.*; /** * Instances of this interface would listen for events generated as a result * of creating or removing a presence subscription through the subscribe and * unsubscribe methods of the OperationSetPresence and * OperationSetPersistentPresence operation sets. * <p> * Note that these are events that are most often triggered by remote/server * side messages. This means that users of the protocol provider service (such * as the User Interface for example) should wait for one of them before * announcing a subscription as created or deleted (i.e. before showing or * removing a user in/from a displayed contact list). * <p> * @author Emil Ivov */ public interface SubscriptionListener extends EventListener { /** * Indicates that a subscription has been successfully created and accepted * by the remote party. * @param evt the SubscriptionEvent containing the corresponding contact */ public void subscriptionCreated(SubscriptionEvent evt); /** * Indicates that a subscription has failed and/or was not accepted by the * remote party. * @param evt the SubscriptionEvent containing the corresponding contact */ public void subscriptionFailed(SubscriptionEvent evt); /** * Indicates that a subscription has been successfully removed and that * the remote party has acknowledged its removal. * @param evt the SubscriptionEvent containing the corresponding contact */ public void subscriptionRemoved(SubscriptionEvent evt); /** * Indicates that a contact/subscription has been moved from one server * stored group to another. The method would only be called by * implementations of OperationSetPersistentPresence as non persistent * presence operation sets do not support the notion of server stored groups. * * @param evt a reference to the SubscriptionMovedEvent containing previous * and new parents as well as a ref to the source contact. */ public void subscriptionMoved(SubscriptionMovedEvent evt); /** * Indicates that a subscription has been successfully resolved and that * the server has acknowledged taking it into account. * @param evt the SubscriptionEvent containing the source contact */ public void subscriptionResolved(SubscriptionEvent evt); /** * Indicates that the source contact has had one of its properties changed. * @param evt the <tt>ContactPropertyChangeEvent</tt> containing the source * contact and the old and new values of the changed property. */ public void contactModified(ContactPropertyChangeEvent evt); }