/*
* 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.*;
import net.java.sip.communicator.service.protocol.*;
/**
* Events of this class indicate a change in one of the properties of a
* ServerStoredGroup.
*
* @author Emil Ivov
*/
public class ServerStoredGroupEvent
extends EventObject
{
/**
* Indicates that a contact group has been successfully created.
*/
public static final int GROUP_CREATED_EVENT = 1;
/**
* Indicates that a contact group has been successfully deleted.
*/
public static final int GROUP_REMOVED_EVENT = 2;
/**
* Indicates that a group has been successfully renamed.
*/
public static final int GROUP_RENAMED_EVENT = 3;
/**
* Indicates that a group has just been resolved against the server.
*/
public static final int GROUP_RESOLVED_EVENT = 4;
/**
* Indicates that we have failed to create a group.
*/
public static final int GROUP_CREATION_FAILED_EVENT = 5;
private int eventID = -1;
private ProtocolProviderService sourceProvider = null;
private OperationSetPersistentPresence parentOperationSet = null;
private ContactGroup parentGroup = null;
/**
* Creates a ServerStoredGroupChangeEvent instance.
* @param sourceGroup the group that this event is pertaining to.
* @param eventID an int describing the cause of the event
* @param parentGroup the group that the source group is a child of.
* @param sourceProvider a reference to the protocol provider where this is
* happening
* @param opSet a reference to the operation set responsible for the event
*/
public ServerStoredGroupEvent(ContactGroup sourceGroup,
int eventID,
ContactGroup parentGroup,
ProtocolProviderService sourceProvider,
OperationSetPersistentPresence opSet)
{
super(sourceGroup);
this.eventID = eventID;
this.sourceProvider = sourceProvider;
this.parentOperationSet = opSet;
this.parentGroup = parentGroup;
}
/**
* Returns a reference to the <tt>ContactGroup</tt> that this event is
* pertaining to.
* @return a reference to the ContactGroup that caused the event.
*/
public ContactGroup getSourceGroup()
{
return (ContactGroup)getSource();
}
/**
* Returns an int describing the cause of this event.
* @return an int describing the cause of this event.
*/
public int getEventID()
{
return eventID;
}
/**
* Returns a reference to the provider under which the event is being
* generated
* @return a ProtocolProviderService instance indicating the provider
* responsible for the event.
*/
public ProtocolProviderService getSourceProvider()
{
return this.sourceProvider;
}
/**
* Returns a reference to the operation set that generated the event
* @return a reference to an OperationSetPersistentPresence instance,
* responsible for generating the event.
*/
public OperationSetPersistentPresence getSourceOperationSet()
{
return this.parentOperationSet;
}
/**
* Returns the group containing the event source group
* @return a reference to the <tt>ContactGroup</tt> instance that is parent
* of the <tt>ContactGroup</tt> which is the source of this event.
*/
public ContactGroup getParentGroup()
{
return parentGroup;
}
/**
* Returns a String representation of this event.
* @return a String containing details describin this event.
*/
public String toString()
{
StringBuffer buff
= new StringBuffer("ServerStoredGroupEvent:[EventID= ");
buff.append(getEventID());
buff.append(" SourceGroup=");
buff.append(getSource());
buff.append("]");
return buff.toString();
}
}