List Info

Thread: Re: Chat room related services...




Re: Chat room related services...
user name
2007-06-18 10:59:34
Hi Stephane,

thanks for the remarks! I've just applied your fixes and
committed them 
to the CVS.

Yana

Stéphane Remy wrote:
> Hi Yana,
> 
> Sorry for the late answer. I updated my code with your
changes and i'm 
> ok with all you've done. I just noticed two things you
forgot to change:
> 
> In ChatRoomPropertyChangeEvent:
> 
> You forgot to change PROPERTY_STATE_CHANGED into
PROPERTY_CONFIG_CHANGED.
> 
> In ChatRoomConfigParam:
> 
> You forgot to remove _CHAT_ROOM_NOT_VISIBLE.
> 
> Stéphane
> 
> Yana Stamcheva <yanasip-communicator.org> a
écrit :
> 
>> Hi Stephane,
>>
>> very well structured and complete code! You've done
a very good work!
>>
>> I have just committed your code to the cvs. I had
to make some minor
>> modifications so the code fit better to SIP
Communicator conventions, you
>> could see the list of changes below.
>>
>> General modifications
>> ==============
>> - Removed special characters from author name -
Stéphane was renamed to
>> Stephane
>>
>> - Added additional comments where needed
>>
>> - Renamed
>>  - ChatRoomLocalUserParticipationChangeEvent to
>> ChatRoomLocalUserPresenceChangeEvent
>>  - ChatRoomLocalUserParticipationListener to
>> ChatRoomLocalUserPresenceListener -
>>  - ChatRoomMemberParticipationChangeEvent to
>> ChatRoomMemberPresenceChangeEvent
>>  - ChatRoomMemberParticipationListener to
ChatRoomMemberPresenceListener
>>
>> After a discussion with Emil we decided to take the
"Presence"  name, it
>> appears more intuitive
>>
>> ChatRoom
>> ========
>> - Added some additional comments to setUserLimit,
addBanMask, 
>> removeBanMask,
>> getBanList, getUserLimit - to explain some more
details on what ban 
>> mask or
>> ban list is, what is the user limit about, etc.
>>
>> - Renamed setState to addConfigParam - we renamed
also the ChatRoomState
>> class to ChatRoomConfigParam. I had a look in the
ChatRoomState class 
>> and I
>> would say that properties there are rather
configuration patameters 
>> and not
>> chat room states.
>>
>> - Added removeConfigParam,
getSupportedConfigurationParams and
>> getConfiguration - in order to be able to remove a
configuration 
>> parameter,
>> to obtain the list of configuration paramaters
supported by the current
>> implementation and to obtain the current chat room
configuration.
>>
>> - Added getPassword method - it was only a
setPassword.
>>
>> - Removed final modifiers for String and int
parameters - Java API 
>> says that
>> "Strings are constant; their values cannot be
changed after they are
>> created" . And ints are not objects and
they're copied by value (i.e. a
>> brand new copy is created and is passed to the
method), so the final
>> modifier is redundant in this case.
>>
>> ChatRoomState
>> =============
>> - Renamed to ChatRoomConfigParam - as I already
mentioned the name wasn't
>> very well fitting the content of the class, so we
tried to make it more
>> intuitive
>>
>> - Formatted the code - lines were longer than 80
columns
>>
>> - Added additional comments
>>
>> - Removed CHAT_ROOM_PASSWORD_NOT_REQUIRED, 
>> CHATROOM_INVITATION_NOT_REQUIRED,
>> CHATROOM_USER_NUMBER_NOT_LIMITED,
CHATROOM_NOT_MUTE,
>> CHATROOM_EXTERNAL_MESSAGES_NOT_ALLOWED,
CHATROOM_NOT_REGISTERED,
>> CHATROOM_SUBJECT_NOT_LOCKED,
CHATROOM_MESSAGE_FORMAT_NOT_ALLOWED,
>> CHATROOM_MESSAGE_FORMAT_NOT_FILTERED,
CHATROOM_JOIN_TIME_NOT_LIMITED, 
>> etc.
>>
>> - Renamed CHAT_ROOM_USER_REGISTERED to
CHAT_ROOM_ONLY_REGISTERED_USER - I
>> think it's more intuitive this way
>>
>> - All _XXX String constants are changed to
protected - they will be used
>> only internaly and may be by descendants
>>
>> ChatRoomInvitation
>> ==================
>> - get back the name of the author of the class -
should not remove the 
>> name
>> of the author even if the class was almost empty
and we wrote the whole
>> implementation
>>
>> ChatRoomPropertyChangeEvent
>> ===========================
>> - get back the name of the author of the class
>>
>> - Removed the getProtocolProvider method - the
protocol provider could be
>> obtained from the chat room and has nothing to do
in the context of this
>> event
>>
>> - Removed the reason field - I don't think we need
to have the String
>> reason, I don't really see for what it could be
used.
>>
>> - Added getOldValue and getNewValue methods - in
order to be able to 
>> obtain
>> previous and new property values
>>
>> That's all for now.
>>
>> Thanks again Stephane and Loic for the great work!
I'll continue with the
>> irc implementation now and soon we'll have all your
work on cvs.
>>
>> If you have any remarks on above changes you're
welcome to express 
>> yourself.
>>
>> Regards,
>> Yana
>>
>> On 5/21/07, Stéphane Remy <stephane.remyulp.u-strasbg.fr> wrote:
>>>
>>> Hi Yana,
>>>
>>> I have made a lot of changes again to this
services, i hope i didn't
>>> forget something, otherwise don't hesitate to
tell it to me i will
>>> fixe it.
>>>
>>> Quoting Yana Stamcheva <yanasip-communicator.org>:
>>>
>>>> Hi Stephane,
>>>>
>>>> Sorry for the late response. You have done
really good work here. 
>>>> Bravo!
>>>>
>>>> I would propose just some minor changes to
discuss:
>>>> - In ChatRoomMemberRoleListener we should
called the method
>>>> memberRoleChanged, instead of
memberStatusChanged. (I think it's a copy
>>>> paste error)
>>>
>>> I have changed that.
>>>
>>>> - In ChatRoomInvitatioXXXEvent we should
rename the method
>>>> getSourceMessage to getSourceInvitation or
getChatRoomInvitation,
>>>> because actually it returns a
ChatRoomInvitation.
>>>
>>> It's fixed too.
>>>
>>>> - After a discussion with Emil we think
that it would be correct that
>>>> ChatRoomPropertyChangeEvent extends
java.beans.PropertyChangeEvent and
>>>> thus it should implement getOldValue and
getNewValue methods.
>>>
>>> For this part i have made a lot of changes, i
have used the
>>> java.beans.PropertyChangeEvent, but i have also
created a class name
>>> ChatRoomState which contains all the possible
states for a chat room.
>>>
>>>> - We have some doubts for the name
TOPIC_CHANGED. In the ChatRoom we
>>>> already have a property called
"subject", so may be it's better to call
>>>> it SUBJECT_CHANGED here also.
>>>
>>> It's fixed too.
>>>
>>>> - In fact all the names of properties in
the
>>>> ChatRoomPropertyChangeEvent are not very
well matching the convention
>>>> used for property names. We should change
them may be by replacing MODE
>>>> with PROPERTY and further more by adjusting
better the names so that
>>>> they are more intuitive.
>>>
>>> I have made them as intuitive as possible this
time, but if you find
>>> better words to make them more intuitive just
tell me.
>>>
>>>> - And finally all properties defined in the
ChatRoomPropertyChangeEvent
>>>> should also exist as properties in the
ChatRoom, because they are
>>>> actually properties of the chat room and we
should be able to get and
>>>> set their value from there.
>>>
>>> I have changed this too.
>>>
>>>>
>>>> That's all for now. May be Emil will have
something to add.
>>>>
>>>> I should say one more time congratulations
for the work 
>>>>
>>>> Yana
>>>
>>> Fot the ChatRoomState class i'm not sure if it
is the best way to do,
>>> so tell me what do you think about it.
>>>
>>> Stéphane
>>>
>>> here is the patch:
>>>
>>> ### Eclipse Workspace Patch 1.0
>>> #P sip-communicator
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java 
>>>
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusChangeEvent.java     
>>> 22
>>> Feb 2007 12:36:02
>>> -0000   1.1
>>> +++ /dev/null   1 Jan 1970 00:00:00 -0000
>>>  -1,23 +0,0 
>>> -/*
>>> - * 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;
>>> -
>>> -/**
>>> - * Dispatched to notify interested parties
that a change in our 
>>> status in
>>> the
>>> - * source room has changed. Changes may
include us being kicked, 
>>> banned,
>>> or
>>> - * granted admin permissions.
>>> - *
>>> - * author Emil Ivov
>>> - */
>>> -public class
ChatRoomLocalUserStatusChangeEvent
>>> -{
>>> -    public
ChatRoomLocalUserStatusChangeEvent()
>>> -    {
>>> -        super();
>>> -    }
>>> -
>>> -}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java 
>>>
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberListener.java         
>>> 23
>>> Apr 2007 18:11:29
>>> -0000   1.1
>>> +++ /dev/null   1 Jan 1970 00:00:00 -0000
>>>  -1,27 +0,0 
>>> -/*
>>> - * 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.*;
>>> -
>>> -/**
>>> - * Adds a listener that will be notified of
changes in the status of 
>>> the
>>> chat
>>> - * participants in a particular chat room,
such as us being kicked,
>>> banned, or
>>> - * granted admin permissions.
>>> - * author Emil Ivov
>>> - */
>>> -public interface ChatRoomMemberListener
>>> -    extends EventListener
>>> -{
>>> -    /**
>>> -     * Called to notify interested parties
that a change in the 
>>> status of
>>> the
>>> -     * source room participant has changed.
Changes may include the
>>> participant
>>> -     * being kicked, banned, or granted admin
permissions.
>>> -     */
>>> -    public void memberStatusChanged(
ChatRoomMemberEvent evt );
>>> -
>>> -}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mPropertyChangeEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/event/ChatRoomPropertyChangeEvent.java,v 
>>>
>>> retrieving revision 1.1
>>> diff -u -r1.1 ChatRoomPropertyChangeEvent.java
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mPropertyChangeEvent.java 
>>>
>>> 22 Feb 2007 12:37:18
>>> -0000   1.1
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mPropertyChangeEvent.java 
>>>
>>> 21 May 2007 07:05:35
>>> -0000
>>>  -6,22 +6,114 
>>>   */
>>>  package
net.java.sip.communicator.service.protocol.event;
>>>
>>> -import java.util.*;
>>> +import
net.java.sip.communicator.service.protocol.ChatRoom;
>>> +import 
>>>
net.java.sip.communicator.service.protocol.ProtocolProviderS
ervice
>>> ;
>>>
>>>  /**
>>>   * <tt>ChatRoomChangeEvent</tt>s
are fired to indicate that a property
>>> of
>>> - * the corresponding chat room (e.g. its
subject or type) have been
>>> modified.
>>> + * the corresponding chat room (e.g. its
subject or state) have been
>>> modified.
>>>   * The event contains references to the source
chat room and
>>> provider, the name
>>>   * of the property that has just changed as
well as its old and new
>>> values.
>>>   *
>>> - * author Emil Ivov
>>> + * author Stéphane Remy
>>>   */
>>>  public class ChatRoomPropertyChangeEvent
>>> -    extends EventObject
>>> +    extends java.beans.PropertyChangeEvent
>>>  {
>>> -    public ChatRoomPropertyChangeEvent(Object
source)
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * chat room subject being changed.
>>> +     */
>>> +    public static final String
PROPERTY_SUBJECT_CHANGED =
>>> "SubjectChanged";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * chat room ban list being changed.
>>> +     */
>>> +    public static final String
PROPERTY_BAN_LIST_CHANGED =
>>> "BanListChanged";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * chat room user limit being changed.
>>> +     */
>>> +    public static final String
PROPERTY_USER_LIMIT_CHANGED =
>>> "UserLimitChanged";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * chat room state changed.
>>> +     */
>>> +    public static final String
PROPERTY_STATE_CHANGED = "StateChanged";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * chat room password being changed.
>>> +     */
>>> +    public static final String
PROPERTY_PASSWORD_CHANGED =
>>> "PasswordChanged";
>>> +
>>> +    /**
>>> +     * An optional String indicating a
possible reason why the event
>>> +     * might have occurred.
>>> +     */
>>> +    private String reason = null;
>>> +
>>> +    public
ChatRoomPropertyChangeEvent(ChatRoom source,
>>> +                                              
        String
>>> propertyName,
>>> +                                              
        Object oldValue,
>>> +                                              
        Object newValue,
>>> +                                String
reason)
>>> +    {
>>> +        super(source, propertyName, oldValue,
newValue);
>>> +        this.reason = reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the source chat room for this
event.
>>> +     *
>>> +     * return the <tt>ChatRoom</tt>
associated with this
>>> +     * event.
>>> +     */
>>> +    public ChatRoom getSourceChatRoom()
>>> +    {
>>> +        return (ChatRoom)getSource();
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a reference to the protocol
provider where the event has
>>> +     * originated.
>>> +     * <p>
>>> +     * return a reference to the
ProtocolProviderService instance 
>>> where
>>> this
>>> +     * event originated.
>>> +     */
>>> +    public ProtocolProviderService
getProtocolProvider()
>>> +    {
>>> +        return
getSourceChatRoom().getParentProvider();
>>> +    }
>>> +
>>> +    /**
>>> +     * A reason string indicating a human
readable reason for this 
>>> event.
>>> +     *
>>> +     * return a human readable String containing
the reason for this
>>> event,
>>> +     * or null if no particular reason was
specified.
>>> +     */
>>> +    public String getReason()
>>> +    {
>>> +        return reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a String representation of this
event.
>>> +     */
>>> +    public String toString()
>>>      {
>>> -        super(source);
>>> +        return
"ChatRoomPropertyChangeEvent[type="
>>> +            + this.getPropertyName()
>>> +            + " sourceRoom="
>>> +            + this.getSource().toString()
>>> +            + "oldValue="
>>> +            + this.getOldValue().toString()
>>> +            + "newValue="
>>> +            + this.getNewValue().toString()
>>> +            + "]";
>>>      }
>>>
>>>  }
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java 
>>>
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberEvent.java 
>>>
>>> 23 Apr 2007 18:11:22
>>> -0000   1.1
>>> +++ /dev/null   1 Jan 1970 00:00:00 -0000
>>>  -1,124 +0,0 
>>> -/*
>>> - * 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.*;
>>> -
>>> -/**
>>> - * Dispatched to notify interested parties
that a change in the 
>>> status of
>>> the
>>> - * source room participant has changed.
Changes may include the
>>> participant
>>> - * being kicked, banned, or granted admin
permissions.
>>> - *
>>> - * author Emil Ivov
>>> - */
>>> -public class ChatRoomMemberEvent
>>> -    extends EventObject
>>> -{
>>> -    /**
>>> -     * Indicates that this event was triggered
as a result of the 
>>> source
>>> -     * participant joining the source chat
room.
>>> -     */
>>> -    public static final String MEMBER_JOINED =
"MemberJoined";
>>> -
>>> -    /**
>>> -     * Indicates that this event was triggered
as a result of the 
>>> source
>>> -     * participant being "kicked"
out of the chat room.
>>> -     */
>>> -    public static final String MEMBER_LEFT =
"MemberJoined";
>>> -
>>> -   /**
>>> -    * Indicates that this event was triggered
as a result of the source
>>> -    * participant leaving the source chat
room.
>>> -    */
>>> -    public static final String MEMBER_KICKED =
"MemberKicked";
>>> -
>>> -    /**
>>> -     * The member that the event relates to.
>>> -     */
>>> -    private ChatRoomMember sourceMember =
null;
>>> -
>>> -    /**
>>> -     * The type of this event. Values can be
any of the MEMBER_XXX-ED
>>> fields.
>>> -     */
>>> -    private String eventType = null;
>>> -
>>> -    /**
>>> -     * An optional String indicating a
possible reason as to why the
>>> event
>>> -     * might have occurred.
>>> -     */
>>> -    private String reason = null;
>>> -
>>> -
>>> -    public ChatRoomMemberEvent(ChatRoom      
sourceRoom,
>>> -                               ChatRoomMember
sourceMember,
>>> -                               String        
eventType,
>>> -                               String        
reason )
>>> -    {
>>> -        super(sourceRoom);
>>> -        this.sourceMember = sourceMember;
>>> -        this.eventType = eventType;
>>> -        this.reason = reason;
>>> -    }
>>> -
>>> -    /**
>>> -     * Returns the source chat room for this
event.
>>> -     *
>>> -     * return the <tt>ChatRoom</tt>
associated with that is the
>>> source of this
>>> -     * event and that the corresponding
ChatRoomMemberBelongs to.
>>> -     */
>>> -    public ChatRoom getChatRoom()
>>> -    {
>>> -        return (ChatRoom)getSource();
>>> -    }
>>> -
>>> -    /**
>>> -     * Returns the member that this event is
pertaining to.
>>> -     * return the
<tt>ChatRoomMember</tt> that this event is 
>>> pertaining
>>> to.
>>> -     */
>>> -    public ChatRoomMember getChatRoomMember()
>>> -    {
>>> -        return sourceMember;
>>> -    }
>>> -
>>> -    /**
>>> -     * A reason string indicating a human
readable reason for this 
>>> event.
>>> -     *
>>> -     * return a human readable String containing
the reason for this
>>> event,
>>> -     * or null if no particular reason was
specified.
>>> -     */
>>> -    public String getReason()
>>> -    {
>>> -        return reason;
>>> -    }
>>> -
>>> -    /**
>>> -     * Returns the type of this event which
could be one of the
>>> MEMBER_XXX-ed
>>> -     * member field values.
>>> -     *
>>> -     * return one of the MEMBER_XXXed member
field values indicating
>>> the type
>>> -     * of this event.
>>> -     */
>>> -    public String getEventType()
>>> -    {
>>> -        return eventType;
>>> -    }
>>> -
>>> -    /**
>>> -     * Returns a String representation of this
event.
>>> -     */
>>> -    public String toString()
>>> -    {
>>> -        return
"ChatRoomMemberEvent[type="
>>> -            + getEventType()
>>> -            + " sourceRoom="
>>> -            + getChatRoom()
>>> -            + " member="
>>> -            + getChatRoomMember()
>>> -            + "]";
>>> -    }
>>> -}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java 
>>>
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserStatusListener.java 
>>>
>>> 22 Feb 2007 12:36:09
>>> -0000   1.1
>>> +++ /dev/null   1 Jan 1970 00:00:00 -0000
>>>  -1,25 +0,0 
>>> -/*
>>> - * 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.*;
>>> -
>>> -/**
>>> - * Adds a listener that will be notified of
changes in our status in 
>>> the
>>> room
>>> - * such as us being kicked, banned, or granted
admin permissions.
>>> - * author Emil Ivov
>>> - */
>>> -public interface
ChatRoomLocalUserStatusListener
>>> -    extends EventListener
>>> -{
>>> -    /**
>>> -     * Called to notify interested parties
that a change in our 
>>> status in
>>> the
>>> -     * source soom has changed. Changes may
include us being kicked,
>>> banned, or
>>> -     * granted admin permissions.
>>> -     */
>>> -    public void
>>>
localUserStatusChanged(ChatRoomLocalUserStatusChangeEvent
evt);
>>> -}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberRoleChangeEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/event/ChatRoomMemberRoleChangeEvent.java,v 
>>>
>>> retrieving revision 1.1
>>> diff -u -r1.1
ChatRoomMemberRoleChangeEvent.java
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberRoleChangeEvent.java 
>>>
>>> 23 Apr 2007 18:11:36
>>> -0000   1.1
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberRoleChangeEvent.java 
>>>
>>> 21 May 2007 07:05:35
>>> -0000
>>>  -1,23 +1,94 
>>> +/*
>>> + * 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.*;
>>> +
>>>  /**
>>> - * <p> </p>
>>> - *
>>> - * <p> </p>
>>> - *
>>> - * <p> </p>
>>> - *
>>> - * <p> </p>
>>> + * Dispatched to notify interested parties
that a change in our role in
>>> the
>>> + * source room has changed. Changes may
include us being granted
>>> admin permissions,
>>> + * or other permissions.
>>> + *
>>> + * see ChatRoomMemberRole
>>>   *
>>>   * author Emil Ivov
>>> + * author Stéphane Remy
>>>   */
>>>  public class ChatRoomMemberRoleChangeEvent
>>>      extends EventObject
>>>  {
>>> -    public
ChatRoomMemberRoleChangeEvent(Object source)
>>> +    /**
>>> +     * The member that the event relates to.
>>> +     */
>>> +       private ChatRoomMember sourceMember =
null;
>>> +
>>> +    /**
>>> +     * The previous role that this member
had.
>>> +     */
>>> +       private ChatRoomMemberRole previousRole
= null;
>>> +
>>> +       /**
>>> +        * The new role that this member get.
>>> +        */
>>> +       private ChatRoomMemberRole newRole =
null;
>>> +
>>> +    public
ChatRoomMemberRoleChangeEvent(ChatRoom sourceRoom,
>>> +
>>> ChatRoomMember sourceMember,
>>> +
>>> ChatRoomMemberRole previousRole,
>>> +
>>> ChatRoomMemberRole newRole)
>>>      {
>>> -        super(source);
>>> +       super(sourceRoom);
>>> +       this.sourceMember = sourceMember;
>>> +       this.previousRole = previousRole;
>>> +       this.newRole = newRole;
>>>      }
>>> +
>>> +    /**
>>> +     * Returns the new role given to this
member.
>>> +     *
>>> +     * return newRole the new role given to this
member for this chat
>>> +     * room.
>>> +     */
>>> +    public ChatRoomMemberRole getNewRole()
>>> +    {
>>> +               return newRole;
>>> +       }
>>> +
>>> +    /**
>>> +     * Returns the previous role that this
member had in this
>>> +     * chat room.
>>> +     *
>>> +     * return previousRole the previous role that
this member
>>> +     * had in this chat room.
>>> +     */
>>> +    public ChatRoomMemberRole
getPreviousRole()
>>> +    {
>>> +               return previousRole;
>>> +       }
>>> +
>>> +    /**
>>> +     * Returns the source chat room for this
event.
>>> +     *
>>> +     * return the <tt>ChatRoom</tt>
associated with that is the
>>> source of this
>>> +     * event and that the corresponding
ChatRoomMemberBelongs to.
>>> +     */
>>> +    public ChatRoom getSourceChatRoom()
>>> +    {
>>> +        return (ChatRoom)getSource();
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the member that this event is
pertaining to.
>>> +     * return the
<tt>ChatRoomMember</tt> that this event is 
>>> pertaining
>>> to.
>>> +     */
>>> +    public ChatRoomMember getSourceMember()
>>> +    {
>>> +               return sourceMember;
>>> +       }
>>>  }
>>> Index:
>>>
src/net/java/sip/communicator/service/protocol/ChatRoomInvit
ation.java
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/ChatRoomInvitation.java,v 
>>>
>>> retrieving revision 1.1
>>> diff -u -r1.1 ChatRoomInvitation.java
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/ChatRoomInvit
ation.java  
>>> 22
>>> Feb
>>> 2007 12:35:34 -0000     1.1
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/ChatRoomInvit
ation.java  
>>> 21
>>> May
>>> 2007 07:05:34 -0000
>>>  -7,13 +7,42 
>>>  package
net.java.sip.communicator.service.protocol;
>>>
>>>  /**
>>> - * author Emil Ivov
>>> + * This interface representes an invitation,
which is send from a
>>> chat room member
>>> + * to an other in order to invite this chat
room member to join the
>>> chat room this invitation
>>> + * have for target.
>>> + *
>>> + * author Stéphane Remy
>>>   */
>>> -public class ChatRoomInvitation
>>> +public interface ChatRoomInvitation
>>>  {
>>> -    public ChatRoomInvitation()
>>> -    {
>>> -        super();
>>> -    }
>>> -
>>> +       /**
>>> +     * Returns the chat room target of this
invitation
>>> +     *
>>> +     * return the <tt>ChatRoom</tt>
target of this invitation
>>> +     */
>>> +       public ChatRoom getTarget();
>>> +
>>> +       /**
>>> +     * Returns the reason of this invitation,
or null if there is no
>>> reason
>>> +     *
>>> +     * return the reason of this invitation, or
null if there is no
>>> reason
>>> +     */
>>> +    public String getReason();
>>> +
>>> +    /**
>>> +     * Returns the subject of this invitation
or null if the
>>> invitation contains no
>>> +     * subject.
>>> +     * return the subject of this invitation or
null if the
>>> invitation contains no
>>> +     * subject.
>>> +     */
>>> +    public String getSubject();
>>> +
>>> +       /**
>>> +     * Returns the protocol provider instance
that this invitation
>>> has originated
>>> +     * in.
>>> +     *
>>> +     * return the
<tt>ProtocolProviderService</tt> instance that
>>> created this
>>> +     * invitation
>>> +     */
>>> +    public ProtocolProviderService
getProtocolProvider();
>>>  }
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java 
>>>
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/InvitationRec
eivedEvent.java 
>>>
>>> 22
>>> Feb 2007 12:35:41 -0000 1.1
>>> +++ /dev/null   1 Jan 1970 00:00:00 -0000
>>>  -1,26 +0,0 
>>> -/*
>>> - * 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;
>>> -
>>> -/**
>>> - * Delivered when we receive an invitation for
joining an existing chat
>>> room.
>>> - * If the corresponding chat room requires a
password, then it could be
>>> - * retreived by the getPassword() method. The
method would return 
>>> null if
>>> no
>>> - * password is necessary to join the specified
chat room.
>>> - *
>>> - * author Emil Ivov
>>> - */
>>> -public class InvitationReceivedEvent
>>> -    extends java.util.EventObject
>>> -{
>>> -
>>> -    public
InvitationReceivedEvent(ProtocolProviderService
srcProvider,
>>> -                                   ChatRoom
chatRoom)
>>> -    {
>>> -        super(srcProvider);
>>> -    }
>>> -}
>>> Index:
src/net/java/sip/communicator/service/protocol/ChatRoom.java

>>>
============================================================
=======
>>> RCS file:
>>>
>>>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/ChatRoom.java,v 
>>>
>>> retrieving revision 1.4
>>> diff -u -r1.4 ChatRoom.java
>>> --- 
>>>
src/net/java/sip/communicator/service/protocol/ChatRoom.java
       24
>>> Apr 2007 12:31:25 -0000 1.4
>>> +++ 
>>>
src/net/java/sip/communicator/service/protocol/ChatRoom.java
       21
>>> May 2007 07:05:34 -0000
>>>  -17,7 +17,6 
>>>   */
>>>  public interface ChatRoom
>>>  {
>>> -
>>>      /**
>>>       * Returns the name of this
<tt>ChatRoom</tt>.
>>>       *
>>>  -95,25 +94,6 
>>>      public void leave();
>>>
>>>      /**
>>> -     * Adds <tt>listener</tt> to
the list of listeners registered to
>>> receive
>>> -     * events upon modification of chat room
properties such as its
>>> subject
>>> -     * for example.
>>> -     *
>>> -     * param listener ChatRoomChangeListener
>>> -     */
>>> -    public void
addChatRoomPropertyChangeListener(
>>> -                                   
ChatRoomPropertyChangeListener
>>> listener);
>>> -
>>> -    /**
>>> -     * Removes <tt>listener</tt>
from the list of listeneres current
>>> registered
>>> -     * for chat room modification events.
>>> -     *
>>> -     * param listener the
<tt>ChatRoomChangeListener</tt> to remove.
>>> -     */
>>> -    public void
removeChatRoomPropertyChangeListener(
>>> -                                   
ChatRoomPropertyChangeListener
>>> listener);
>>> -
>>> -    /**
>>>       * Returns the last known room
subject/theme or <tt>null</tt> if 
>>> the
>>> user
>>>       * hasn't joined the room or the room does
not have a subject yet.
>>>       * <p>
>>>  -163,41 +143,88 
>>>         throws OperationFailedException;
>>>
>>>     /**
>>> -    * Adds a listener that will be notified of
changes in our status
>>> in the room
>>> -    * such as us being kicked, banned, or
granted admin permissions.
>>> +    * Adds a listener that will be notified of
changes in our
>>> participation in the room
>>> +    * such as us being kicked, join, left.
>>>      *
>>> -    * param listener a local user status
listener.
>>> +    * param listener a local user participation
listener.
>>>      */
>>> -    public void addLocalUserStatusListener(
>>> -                                   
ChatRoomLocalUserStatusListener
>>> listener);
>>> +    public void
addLocalUserParticipationListener(
>>> +
>>> ChatRoomLocalUserParticipationListener
listener);
>>>
>>>     /**
>>> -    * Removes a listener that was being
notified of changes in our 
>>> status
>>> in
>>> -    * the room such as us being kicked,
banned, or granted admin
>>> permissions.
>>> +    * Removes a listener that was being
notified of changes in our
>>> participation in
>>> +    * the room such as us being kicked, join,
left...
>>>      *
>>> -    * param listener a local user status
listener.
>>> +    * param listener a local user participation
listener.
>>>      */
>>> -    public void
removeLocalUserStatusListener(
>>> -                                   
ChatRoomLocalUserStatusListener
>>> listener);
>>> +    public void
removeLocalUserParticipationListener(
>>> +
>>> ChatRoomLocalUserParticipationListener
listener);
>>>
>>>     /**
>>> -    * Adds a listener that will be notified of
changes in our status
>>> in the room
>>> -    * such as us being kicked, banned, or
granted admin permissions.
>>> +    * Adds a listener that will be notified of
changes in our
>>> participation in the room
>>> +    * such as us being kicked, join, left...
>>>      *
>>> -    * param listener a participant status
listener.
>>> +    * param listener a member participation
listener.
>>>      */
>>> -    public void
addMemberListener(ChatRoomMemberListener listener);
>>> +    public void
>>>
addMemberParticipationListener(ChatRoomMemberParticipationLi
stener
>>> listener);
>>>
>>>     /**
>>> -    * Removes a listener that was being
notified of changes in the 
>>> status
>>> of
>>> -    * other chat room participants such as
users being kicked, 
>>> banned, or
>>> -    * granted admin permissions.
>>> +    * Removes a listener that was being
notified of changes in the
>>> participation of
>>> +    * other chat room participants such as
users being kicked, join,
>>> left.
>>>      *
>>> -    * param listener a participant status
listener.
>>> +    * param listener a member participation
listener.
>>>      */
>>> -    public void removeMemberListener(
>>> -                                   
ChatRoomMemberListener listener);
>>> -
>>> +    public void
>>>
removeMemberParticipationListener(ChatRoomMemberParticipatio
nListener
>>> listener);
>>> +
>>> +    /**
>>> +     * Adds a listener that will be notified
of changes in our role
>>> in the room
>>> +     * such as us being granded operator.
>>> +     *
>>> +     * param listener a local user role
listener.
>>> +     */
>>> +     public void
>>>
addLocalUserRoleListener(ChatRoomLocalUserRoleListener
listener);
>>> +
>>> +    /**
>>> +     * Removes a listener that was being
notified of changes in our 
>>> role
>>> in
>>> +     * this chat room such as us being granded
operator.
>>> +     *
>>> +     * param listener a local user role
listener.
>>> +     */
>>> +     public void
>>>
removelocalUserRoleListener(ChatRoomLocalUserRoleListener
listener);
>>> +
>>> +     /**
>>> +      * Adds a listener that will be notified
of changes of a member
>>> role in the room
>>> +      * such as being granded operator.
>>> +      *
>>> +      * param listener a member role listener.
>>> +      */
>>> +      public void
addMemberRoleListener(ChatRoomMemberRoleListener
>>> listener);
>>> +
>>> +     /**
>>> +      * Removes a listener that was being
notified of changes of a
>>> member role in
>>> +      * this chat room such as us being
granded operator.
>>> +      *
>>> +      * param listener a member role listener.
>>> +      */
>>> +      public void
removeMemberRoleListener(ChatRoomMemberRoleListener
>>> listener);
>>> +
>>> +
>>> +     /**
>>> +      * Adds a listener that will be notified
of changes in the
>>> property of the room
>>> +      * such as the subject being change or
the room state being 
>>> changed.
>>> +      *
>>> +      * param listener a property change
listener.
>>> +      */
>>> +      public void
>>>
addPropertyChangeListener(ChatRoomPropertyChangeListener
listener);
>>> +
>>> +     /**
>>> +      * Removes a listener that was being
notified of changes in the
>>> property of
>>> +      * the chat room such as the subject
being change or the room
>>> state being changed.
>>> +      *
>>> +      * param listener a property change
listener.
>>> +      */
>>> +      public void
>>>
removePropertyChangeListener(ChatRoomPropertyChangeListener
listener);
>>> +
>>>      /**
>>>       * Invites another user to this room.
>>>       * <p>
>>>  -285,6 +312,82 
>>>       */
>>>      public ProtocolProviderService
getParentProvider();
>>>
>>> -    //include - roominfo
>>> -    /** todo include room info */
>>> +    /**
>>> +     * Sets the password of this chat room. If
the user does not have
>>> the right
>>> +     * to change the room password, or the
protocol does not support
>>> this, or
>>> +     * the operation fails for some other
reason, the method throws an
>>> +     *
<tt>OperationFailedException</tt> with the
corresponding code.
>>> +     *
>>> +     * param password the new password that we'd
like this room to 
>>> have
>>> +     * throws OperationFailedException
>>> +     */
>>> +    public void setPassword(final String
password)
>>> +        throws OperationFailedException;
>>> +
>>> +    /**
>>> +     * Adds a ban mask to the list fo ban
masks of this chat room. If
>>> the user does
>>> +     * not have the right to change the room
ban list, or the
>>> protocol does not
>>> +     * support this, or the operation fails
for some other reason,
>>> the method throws an
>>> +     *
<tt>OperationFailedException</tt> with the
corresponding code.
>>> +     *
>>> +     * param banMask the new ban mask that we'd
like to add to this
>>> room ban list
>>> +     * throws OperationFailedException
>>> +     */
>>> +    public void addBanMask(final String
banMask)
>>> +        throws OperationFailedException;
>>> +
>>> +    /**
>>> +     * Remove a ban mask of the list fo ban
masks of this chat room.
>>> If the user does
>>> +     * not have the right to change the room
ban list, or the
>>> protocol does not
>>> +     * support this, or the operation fails
for some other reason,
>>> the method throws an
>>> +     *
<tt>OperationFailedException</tt> with the
corresponding code.
>>> +     *
>>> +     * param banMask the ban mask that we'd like
to remove from this
>>> room ban list
>>> +     * throws OperationFailedException
>>> +     */
>>> +    public void removeBanMask(final String
banMask)
>>> +        throws OperationFailedException;
>>> +
>>> +    /**
>>> +     * Sets the user limit of this chat room.
If the user does not
>>> have the right
>>> +     * to change the room user limit, or the
protocol does not
>>> support this, or
>>> +     * the operation fails for some other
reason, the method throws an
>>> +     *
<tt>OperationFailedException</tt> with the
corresponding code.
>>> +     *
>>> +     * param userLimit the new user limit that
we'd like this room to
>>> have
>>> +     * throws OperationFailedException
>>> +     */
>>> +    public void setUserLimit(final int
userLimit)
>>> +        throws OperationFailedException;
>>> +
>>> +    /**
>>> +     * Sets a state of this chat room. If the
user does not have the
>>> right
>>> +     * to change the room state, or the
protocol does not support this,
>>> or
>>> +     * the operation fails for some other
reason, the method throws an
>>> +     *
<tt>OperationFailedException</tt> with the
corresponding code.
>>> +     *
>>> +     * param state the new state that we'd like
this room to have
>>> +     * throws OperationFailedException
>>> +     */
>>> +    public void setState(ChatRoomState state)
>>> +        throws OperationFailedException;
>>> +
>>> +    /**
>>> +     * Returns the list of ban mask that are
currently of this chat 
>>> room.
>>> +     * return List the ban list of this room.
>>> +     */
>>> +    public List getBanList();
>>> +
>>> +    /**
>>> +     * Returns the list of states that this
chat room is currently in.
>>> +     * return List the list of states of this
chat room.
>>> +     */
>>> +    public List getStateList();
>>> +
>>> +    /**
>>> +     * Returns the limit of user of this chat
room, of returns -1 if
>>> there is
>>> +     * no limit.
>>> +     * return List the list of states of this
chat room.
>>> +     */
>>> +    public int getUserLimit();
>>>  }
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/OperationSetM
ultiUserChat.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
/cvs/sip-communicator/src/net/java/sip/communicator/service/
protocol/OperationSetMultiUserChat.java,v 
>>>
>>> retrieving revision 1.4
>>> diff -u -r1.4 OperationSetMultiUserChat.java
>>> ---
>>>
src/net/java/sip/communicator/service/protocol/OperationSetM
ultiUserChat.java 
>>>
>>> 23 Apr 2007 18:12:44
>>> -0000   1.4
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/OperationSetM
ultiUserChat.java 
>>>
>>> 21 May 2007 07:05:35
>>> -0000
>>>  -45,11 +45,11 
>>>      public List
getCurrentlyJoinedChatRooms();
>>>
>>>      /**
>>> -     * Returns a list of the chat rooms that
<tt>contact</tt> has
>>> joined and is
>>> +     * Returns a list of the chat rooms that
<tt>chatRoomMember</tt>
>>> has joined and is
>>>       * currently active in.
>>>       *
>>> -     * param contact the contact whose current
ChatRooms we will be
>>> querying.
>>> -     * return a list of the chat rooms that
<tt>contact</tt> has
>>> joined and is
>>> +     * param chatRoomMember the chatRoomMember
whose current
>>> ChatRooms we will be querying.
>>> +     * return a list of the chat rooms that
<tt>chatRoomMember</tt>
>>> has joined and is
>>>       * currently active in.
>>>       *
>>>       * throws OperationFailedException if an
error occurs while trying
>>> to
>>>  -57,7 +57,7 
>>>       * throws OperationNotSupportedException if
the server does not
>>> support
>>>       * multi user chat
>>>       */
>>> -    public List
getCurrentlyJoinedChatRooms(Contact contact)
>>> +    public List
getCurrentlyJoinedChatRooms(ChatRoomMember
>>> chatRoomMember)
>>>          throws OperationFailedException, 
>>> OperationNotSupportedException;
>>>
>>>      /**
>>>  -110,7 +110,7 
>>>       *
>>>       * param listener an invitation listener.
>>>       */
>>> -    public void
addInvitationListener(InvitationListener listener);
>>> +    public void
addInvitationListener(ChatRoomInvitationListener
>>> listener);
>>>
>>>      /**
>>>       * Removes <tt>listener</tt>
from the list of invitation listeners
>>>  -118,7 +118,7 
>>>       *
>>>       * param listener the invitation listener to
remove.
>>>       */
>>> -    public void
removeInvitationListener(InvitationListener listener);
>>> +    public void
removeInvitationListener(ChatRoomInvitationListener
>>> listener);
>>>
>>>      /**
>>>       * Adds a listener to invitation
notifications. The listener
>>> will be fired
>>>  -127,7 +127,7 
>>>       * param listener an invitation listener.
>>>       */
>>>      public void
addInvitationRejectionListener(
>>> -                                       
InvitationRejectionListener
>>> listener);
>>> +
>>> ChatRoomInvitationRejectionListener listener);
>>>
>>>      /**
>>>       * Removes <tt>listener</tt>
from the list of invitation listeners
>>>  -136,14 +136,5 
>>>       * param listener the invitation listener to
remove.
>>>       */
>>>      public void
removeInvitationRejectionListener(
>>> -                                       
InvitationRejectionListener
>>> listener);
>>> -
>>> -    /**
>>> -     * Returns true if
<tt>contact</tt> supports multi user chat
>>> sessions.
>>> -     *
>>> -     * param contact reference to the contact
whose support for chat
>>> rooms
>>> -     * we are currently querying.
>>> -     * return a boolean indicating whether
<tt>contact</tt> supports
>>> chatrooms.
>>> -     */
>>> -    public boolean
isMultiChatSupportedByContact(Contact contact);
>>> +
>>> ChatRoomInvitationRejectionListener listener);
>>>  }
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationListener.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationListener.java         
>>> 1
>>> Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,25 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + * Adds a listener that will be notified of
changes in our
>>> participation in the room
>>> + * such as us being kicked, join, left.
>>> + *
>>> + * author Emil Ivov
>>> + */
>>> +public interface
ChatRoomLocalUserParticipationListener
>>> +    extends EventListener
>>> +{
>>> +    /**
>>> +     * Called to notify interested parties
that a change in our
>>> participation in the
>>> +     * source soom has occured. Changes may
include us being kicked,
>>> join, left.
>>> +     */
>>> +    public void
>>>
localUserParticipationChanged(ChatRoomLocalUserParticipation
ChangeEvent
>>> evt);
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationListener.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationListener.java     
>>> 1
>>> Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,24 
>>> +/*
>>> + * 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;
>>> +
>>> +/**
>>> + * A listener that is fired anytime an
invitation to join a MUC room
>>> is received.
>>> + *
>>> + * author Emil Ivov
>>> + */
>>> +public interface ChatRoomInvitationListener
>>> +{
>>> +    /**
>>> +     * Called when we receive an invitation to
join an existing 
>>> ChatRoom.
>>> +     * <p>
>>> +     * param evt the
<tt>ChatRoomInvitationReceivedEvent</tt> that
>>> contains the newly
>>> +     * received invitation and its source
provider.
>>> +     */
>>> +    public abstract void
>>>
invitationReceived(ChatRoomInvitationReceivedEvent evt);
>>> +
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleListener.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleListener.java 
>>>
>>> 1 Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,28 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + * Adds a listener that will be notified of
changes in the role of the
>>> chat
>>> + * participants in a particular chat room,
such as us being granded any
>>> of
>>> + * the roles you can see in
ChatRoomMemberRole.
>>> + *
>>> + * see ChatRoomMemberRole
>>> + *
>>> + * author Remy Stéphane
>>> + */
>>> +public interface
ChatRoomLocalUserRoleListener
>>> +    extends EventListener
>>> +{
>>> +    /**
>>> +     * Called to notify interested parties
that a change in the role of
>>> the
>>> +     * source room participant has changed.
>>> +     */
>>> +    public void
localUserRoleChanged(ChatRoomLocalUserRoleChangeEvent
>>> evt);
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationChangeEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationChangeEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationChangeEvent.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserParticipationChangeEvent.java 
>>>
>>> 1 Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,112 
>>> +/*
>>> + * 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.EventObject;
>>> +import
net.java.sip.communicator.service.protocol.*;
>>> +
>>> +/**
>>> + * Dispatched to notify interested parties
that a change in our
>>> paticipation in the
>>> + * source room has occured. Changes may
include us being kicked,
>>> join, left...
>>> + *
>>> + * author Emil Ivov
>>> + * author Stéphane Remy
>>> + */
>>> +public class
ChatRoomLocalUserParticipationChangeEvent
>>> +       extends EventObject
>>> +{
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant joining the source chat
room.
>>> +     */
>>> +    public static final String MEMBER_JOINED =
"MemberJoined";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant being "kicked"
out of the chat room.
>>> +     */
>>> +    public static final String MEMBER_LEFT =
"MemberLeft";
>>> +
>>> +   /**
>>> +    * Indicates that this event was triggered
as a result of the source
>>> +    * participant leaving the source chat
room.
>>> +    */
>>> +    public static final String MEMBER_KICKED =
"MemberKicked";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant beein deconnected from the
server brutally, or
>>> ping timeout.
>>> +     */
>>> +     public static final String MEMBER_QUIT =
"MemberQuit";
>>> +
>>> +    /**
>>> +     * The type of this event. Values can be
any of the MEMBER_XXX-ED
>>> fields.
>>> +     */
>>> +    private String eventType = null;
>>> +
>>> +    /**
>>> +     * An optional String indicating a
possible reason as to why the
>>> event
>>> +     * might have occurred.
>>> +     */
>>> +    private String reason = null;
>>> +
>>> +
>>> +    public
ChatRoomLocalUserParticipationChangeEvent(ChatRoom 
>>> sourceRoom,
>>> +
>>> String eventType,
>>> +
>>> String reason)
>>> +    {
>>> +        super(sourceRoom);
>>> +        this.eventType = eventType;
>>> +        this.reason = reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the source chat room for this
event.
>>> +     *
>>> +     * return the <tt>ChatRoom</tt>
associated with that is the
>>> source of this
>>> +     * event and that the corresponding
ChatRoomMemberBelongs to.
>>> +     */
>>> +    public ChatRoom getChatRoom()
>>> +    {
>>> +        return (ChatRoom)getSource();
>>> +    }
>>> +
>>> +    /**
>>> +     * A reason string indicating a human
readable reason for this 
>>> event.
>>> +     *
>>> +     * return a human readable String containing
the reason for this
>>> event,
>>> +     * or null if no particular reason was
specified.
>>> +     */
>>> +    public String getReason()
>>> +    {
>>> +        return reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the type of this event which
could be one of the
>>> MEMBER_XXX-ed
>>> +     * member field values.
>>> +     *
>>> +     * return one of the MEMBER_XXXed member
field values indicating
>>> the type
>>> +     * of this event.
>>> +     */
>>> +    public String getEventType()
>>> +    {
>>> +        return eventType;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a String representation of this
event.
>>> +     */
>>> +    public String toString()
>>> +    {
>>> +        return
"ChatRoomLocalUserStatusChangeEvent[type="
>>> +            + getEventType()
>>> +            + " sourceRoom="
>>> +            + getChatRoom()
>>> +            + "]";
>>> +    }
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationChangeEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationChangeEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationChangeEvent.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationChangeEvent.java         
>>> 1
>>> Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,131 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + * Dispatched to notify interested parties
that a change in the
>>> participation of the
>>> + * source room participant has changed.
Changes may include the
>>> participant
>>> + * being kicked, join, left...
>>> + *
>>> + * author Emil Ivov
>>> + */
>>> +public class
ChatRoomMemberParticipationChangeEvent
>>> +    extends EventObject
>>> +{
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant joining the source chat
room.
>>> +     */
>>> +    public static final String MEMBER_JOINED =
"MemberJoined";
>>> +
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant leaving the source chat
room.
>>> +     */
>>> +    public static final String MEMBER_LEFT =
"MemberLeft";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant being "kicked"
out of the chat room.
>>> +     */
>>> +    public static final String MEMBER_KICKED =
"MemberKicked";
>>> +
>>> +    /**
>>> +     * Indicates that this event was triggered
as a result of the 
>>> source
>>> +     * participant beein deconnected from the
server brutally, or
>>> ping timeout.
>>> +     */
>>> +     public static final String MEMBER_QUIT =
"MemberQuit";
>>> +
>>> +    /**
>>> +     * The member that the event relates to.
>>> +     */
>>> +    private ChatRoomMember sourceMember =
null;
>>> +
>>> +    /**
>>> +     * The type of this event. Values can be
any of the MEMBER_XXX-ED
>>> fields.
>>> +     */
>>> +    private String eventType = null;
>>> +
>>> +    /**
>>> +     * An optional String indicating a
possible reason as to why the
>>> event
>>> +     * might have occurred.
>>> +     */
>>> +    private String reason = null;
>>> +
>>> +
>>> +    public
ChatRoomMemberParticipationChangeEvent(ChatRoom
>>> sourceRoom,
>>> +                               ChatRoomMember
sourceMember,
>>> +                               String        
eventType,
>>> +                               String        
reason )
>>> +    {
>>> +        super(sourceRoom);
>>> +        this.sourceMember = sourceMember;
>>> +        this.eventType = eventType;
>>> +        this.reason = reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the source chat room for this
event.
>>> +     *
>>> +     * return the <tt>ChatRoom</tt>
associated with that is the
>>> source of this
>>> +     * event and that the corresponding
ChatRoomMemberBelongs to.
>>> +     */
>>> +    public ChatRoom getChatRoom()
>>> +    {
>>> +        return (ChatRoom)getSource();
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the member that this event is
pertaining to.
>>> +     * return the
<tt>ChatRoomMember</tt> that this event is 
>>> pertaining
>>> to.
>>> +     */
>>> +    public ChatRoomMember getChatRoomMember()
>>> +    {
>>> +        return sourceMember;
>>> +    }
>>> +
>>> +    /**
>>> +     * A reason string indicating a human
readable reason for this 
>>> event.
>>> +     *
>>> +     * return a human readable String containing
the reason for this
>>> event,
>>> +     * or null if no particular reason was
specified.
>>> +     */
>>> +    public String getReason()
>>> +    {
>>> +        return reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the type of this event which
could be one of the
>>> MEMBER_XXX-ed
>>> +     * member field values.
>>> +     *
>>> +     * return one of the MEMBER_XXXed member
field values indicating
>>> the type
>>> +     * of this event.
>>> +     */
>>> +    public String getEventType()
>>> +    {
>>> +        return eventType;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a String representation of this
event.
>>> +     */
>>> +    public String toString()
>>> +    {
>>> +        return
"ChatRoomMemberEvent[type="
>>> +            + getEventType()
>>> +            + " sourceRoom="
>>> +            + getChatRoom().toString()
>>> +            + " member="
>>> +            + getChatRoomMember().toString()
>>> +            + "]";
>>> +    }
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectionListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectionListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectionListener.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectionListener.java 
>>>
>>> 1 Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,27 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + * A listener that dispatches events notifying
that an invitation which
>>> was
>>> + * sent earlier has been rejected by the
invitee.
>>> + *
>>> + * author Emil Ivov
>>> + */
>>> +public interface
ChatRoomInvitationRejectionListener {
>>> +
>>> +    /**
>>> +     * Called when an invitee rejects an
invitation previously sent by
>>> us.
>>> +     *
>>> +     * param evt the instance of the
>>>
<tt>ChatRoomInvitationRejectedEvent</tt>
>>> +     * containing the rejected chat room
invitation as well as the 
>>> source
>>> +     * provider where this happened.
>>> +     */
>>> +    public void
invitationRejected(ChatRoomInvitationRejectedEvent 
>>> evt);
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationListener.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationListener.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationListener.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mMemberParticipationListener.java 
>>>
>>> 1 Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,27 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + * Adds a listener that will be notified of
changes in the
>>> participation of the chat
>>> + * member in a particular chat room, such as
us being kicked, join, 
>>> left.
>>> + *
>>> + * author Emil Ivov
>>> + */
>>> +public interface
ChatRoomMemberParticipationListener
>>> +    extends EventListener
>>> +{
>>> +    /**
>>> +     * Called to notify interested parties
that a change in the
>>> participation of the
>>> +     * source room member has changed. Changes
may include the
>>> participant
>>> +     * being kicked, join, left.
>>> +     */
>>> +    public void
>>>
memberParticipationChanged(ChatRoomMemberParticipationChange
Event evt );
>>> +
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectedEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectedEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectedEvent.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationRejectedEvent.java 
>>>
>>> 1 Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,114 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + *
<tt>ChatRoomInvitationRejectedEvent</tt>s
indicate reception of a
>>> rejection of
>>> + * an invitation.
>>> + *
>>> + * author Emil Ivov
>>> + * author Stéphane Remy
>>> + */
>>> +public class ChatRoomInvitationRejectedEvent
>>> +    extends EventObject
>>> +{
>>> +    /**
>>> +     * The chat room member that has sent this
rejection.
>>> +     */
>>> +    private ChatRoomMember from = null;
>>> +
>>> +    /**
>>> +     * The chat room member that is the target
of this rejection.
>>> +     */
>>> +    private ChatRoomMember to = null;
>>> +
>>> +    /**
>>> +     * The reason why this invitation is
rejected or null if there is
>>> no reason
>>> +     */
>>> +    private String reason = null;
>>> +
>>> +    /**
>>> +     * A timestamp indicating the exact date
when the event occurred.
>>> +     */
>>> +    private Date timestamp = null;
>>> +
>>> +    /**
>>> +     * Creates a
<tt>ChatRoomInvitationRejectedEvent</tt>
>>> representing the rejection of the
>>> +     * <tt>source</tt> invitation
rejected from the specified
>>> <tt>from</tt>
>>> +     * chat room member.
>>> +     *
>>> +     * param source the
<tt>Invitation</tt> whose reception this
>>> event represents.
>>> +     * param from the
<tt>ChatRoomMember</tt> that has sent this
>>> invitation rejection.
>>> +     * param to the
<tt>ChatRoomMember</tt> that is the target of
>>> this invitation rejection.
>>> +     * param timestamp the exact date when the
event ocurred.
>>> +     */
>>> +    public
ChatRoomInvitationRejectedEvent(ChatRoomInvitation source,
>>> ChatRoomMember from, ChatRoomMember to, String
reason, Date timestamp)
>>> +    {
>>> +        super(source);
>>> +
>>> +        this.from = from;
>>> +        this.to = to;
>>> +        this.reason = reason;
>>> +        this.timestamp = timestamp;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a reference to the
<tt>ChatRoomMember</tt> that has
>>> send the rejection
>>> +     * of the <tt>Invitation</tt>
whose reception this event 
>>> represents.
>>> +     *
>>> +     * return a reference to the
<tt>ChatRoomMember</tt> that has
>>> send the rejection
>>> +     * of the <tt>Invitation</tt>
whose reception this event 
>>> represents.
>>> +     */
>>> +    public ChatRoomMember getFrom()
>>> +    {
>>> +        return from;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a reference to the
<tt>ChatRoomMember</tt> that is the
>>> target of this rejection
>>> +     * of the <tt>Invitation</tt>
whose reception this event 
>>> represents.
>>> +     *
>>> +     * return a reference to the
<tt>ChatRoomMember</tt> that is the
>>> target of this rejection
>>> +     * of the <tt>Invitation</tt>
whose reception this event 
>>> represents.
>>> +     */
>>> +    public ChatRoomMember getTo()
>>> +    {
>>> +        return to;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the reason why this
<tt>Invitation</tt> is rejected.
>>> +     *
>>> +     * return the reason why this
<tt>Invitation</tt> is rejected.
>>> +     */
>>> +    public String getReason()
>>> +    {
>>> +       return reason;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the invitation that was
rejected.
>>> +     * return the <tt>Invitation</tt>
that was rejected.
>>> +     */
>>> +    public ChatRoomInvitation
getSourceInvitation()
>>> +    {
>>> +        return
(ChatRoomInvitation)getSource();
>>> +    }
>>> +
>>> +    /**
>>> +     * A timestamp indicating the exact date
when the event ocurred.
>>> +     * return a Date indicating when the event
ocurred.
>>> +     */
>>> +    public Date getTimestamp()
>>> +    {
>>> +        return timestamp;
>>> +    }
>>> +
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleChangeEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleChangeEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleChangeEvent.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mLocalUserRoleChangeEvent.java       
>>> 1
>>> Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,77 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + * Dispatched to notify interested parties
that a change in our role in
>>> the
>>> + * source room has changed. Changes may
include us being granted
>>> admin permissions,
>>> + * or other permissions.
>>> + *
>>> + * see ChatRoomMemberRole
>>> + *
>>> + * author Emil Ivov
>>> + * author Stéphane Remy
>>> + */
>>> +public class ChatRoomLocalUserRoleChangeEvent
>>> +    extends EventObject
>>> +{
>>> +    /**
>>> +     * The previous role that this member
had.
>>> +     */
>>> +       private ChatRoomMemberRole previousRole
= null;
>>> +
>>> +       /**
>>> +        * The new role that this member get.
>>> +        */
>>> +       private ChatRoomMemberRole newRole =
null;
>>> +
>>> +    public
ChatRoomLocalUserRoleChangeEvent(ChatRoom sourceRoom,
>>> +
>>> ChatRoomMemberRole previousRole,
>>> +
>>> ChatRoomMemberRole newRole)
>>> +    {
>>> +       super(sourceRoom);
>>> +       this.previousRole = previousRole;
>>> +       this.newRole = newRole;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the new role given to this
member.
>>> +     *
>>> +     * return newRole the new role given to this
member for this chat
>>> +     * room.
>>> +     */
>>> +    public ChatRoomMemberRole getNewRole()
>>> +    {
>>> +               return newRole;
>>> +       }
>>> +
>>> +    /**
>>> +     * Returns the previous role that this
member had in this
>>> +     * chat room.
>>> +     *
>>> +     * return previousRole the previous role that
this member
>>> +     * had in this chat room.
>>> +     */
>>> +    public ChatRoomMemberRole
getPreviousRole()
>>> +    {
>>> +               return previousRole;
>>> +       }
>>> +
>>> +    /**
>>> +     * Returns the source chat room for this
event.
>>> +     *
>>> +     * return the <tt>ChatRoom</tt>
associated with that is the
>>> source of this
>>> +     * event and that the corresponding
ChatRoomMemberBelongs to.
>>> +     */
>>> +    public ChatRoom getSourceChatRoom()
>>> +    {
>>> +        return (ChatRoom)getSource();
>>> +    }
>>> +}
>>> Index:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationReceivedEvent.java 
>>>
>>>
============================================================
=======
>>> RCS file:
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationReceivedEvent.java 
>>>
>>> diff -N
>>>
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationReceivedEvent.java 
>>>
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/event/ChatRoo
mInvitationReceivedEvent.java 
>>>
>>> 1 Jan 1970 00:00:00
>>> -0000
>>>  -0,0 +1,97 
>>> +/*
>>> + * 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.*;
>>> +
>>> +/**
>>> + *
<tt>ChatRoomInvitationReceivedEvent</tt>s
indicate reception of
>>> + * an invitation to join a chat room.
>>> + *
>>> + * author Emil Ivov
>>> + * author Stéphane Remy
>>> + */
>>> +public class ChatRoomInvitationReceivedEvent
>>> +    extends EventObject
>>> +{
>>> +    /**
>>> +     * The chat room member that has sent this
invitation.
>>> +     */
>>> +    private ChatRoomMember from = null;
>>> +
>>> +    /**
>>> +     * The chat room member that is the target
of this invitation.
>>> +     */
>>> +    private ChatRoomMember to = null;
>>> +
>>> +    /**
>>> +     * A timestamp indicating the exact date
when the event occurred.
>>> +     */
>>> +    private Date timestamp = null;
>>> +
>>> +    /**
>>> +     * Creates a
<tt>InvitationReceivedEvent</tt> representing
>>> reception of the
>>> +     * <tt>source</tt> invitation
received from the specified
>>> <tt>from</tt>
>>> +     * chat room member.
>>> +     *
>>> +     * param source the
<tt>Invitation</tt> whose reception this
>>> event represents.
>>> +     * param from the
<tt>ChatRoomMember</tt> that has sent this
>>> invitation.
>>> +     * param to the
<tt>ChatRoomMember</tt> that is the target of
>>> this invitation.
>>> +     * param timestamp the exact date when the
event ocurred.
>>> +     */
>>> +    public
ChatRoomInvitationReceivedEvent(ChatRoomInvitation source,
>>> ChatRoomMember from, ChatRoomMember to, Date
timestamp)
>>> +    {
>>> +        super(source);
>>> +
>>> +        this.from = from;
>>> +        this.to = to;
>>> +        this.timestamp = timestamp;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a reference to the
<tt>ChatRoomMember</tt> that has send
>>> the
>>> +     * <tt>Invitation</tt> whose
reception this event represents.
>>> +     *
>>> +     * return a reference to the
<tt>ChatRoomMember</tt> that has send
>>> the
>>> +     * <tt>Invitation</tt> whose
reception this event represents.
>>> +     */
>>> +    public ChatRoomMember getFrom()
>>> +    {
>>> +        return from;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns a reference to the
<tt>ChatRoomMember</tt> that is the
>>> target of the
>>> +     * <tt>Invitation</tt> whose
reception this event represents.
>>> +     *
>>> +     * return a reference to the
<tt>ChatRoomMember</tt> that is the
>>> target of the
>>> +     * <tt>Invitation</tt> whose
reception this event represents.
>>> +     */
>>> +    public ChatRoomMember getTo()
>>> +    {
>>> +        return to;
>>> +    }
>>> +
>>> +    /**
>>> +     * Returns the invitation that triggered
this event
>>> +     * return the <tt>Invitation</tt>
that triggered this event.
>>> +     */
>>> +    public ChatRoomInvitation
getSourceInvitation()
>>> +    {
>>> +        return
(ChatRoomInvitation)getSource();
>>> +    }
>>> +
>>> +    /**
>>> +     * A timestamp indicating the exact date
when the event ocurred.
>>> +     * return a Date indicating when the event
ocurred.
>>> +     */
>>> +    public Date getTimestamp()
>>> +    {
>>> +        return timestamp;
>>> +    }
>>> +}
>>> Index:
src/net/java/sip/communicator/service/protocol/ChatRoomState
.java
>>>
============================================================
=======
>>> RCS file:
>>>
src/net/java/sip/communicator/service/protocol/ChatRoomState
.java
>>> diff -N 
>>>
src/net/java/sip/communicator/service/protocol/ChatRoomState
.java
>>> --- /dev/null   1 Jan 1970 00:00:00 -0000
>>> +++
>>>
src/net/java/sip/communicator/service/protocol/ChatRoomState
.java       
>>> 1
>>> Jan 1970 00:00:00 -0000
>>>  -0,0 +1,589 
>>> +/*
>>> + * 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;
>>> +
>>> +/**
>>> + * The ChatRoomState class reflects the
current state of a chat room.
>>> + *
>>> + * author Stéphane Remy
>>> + */
>>> +public class ChatRoomState
>>> +{
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_VISIBLE state.
>>> +     * <p>
>>> +     * This constant has the String value
"Visible".
>>> +        */
>>> +       public static final String
_CHATROOM_VISIBLE = "Visible";
>>> +
>>> +    /**
>>> +     * This constant value indicates that the
associated chat room is
>>> currently in
>>> +     * a visible state.
>>> +     */
>>> +    public static final ChatRoomState
CHATROOM_VISIBLE = new
>>> ChatRoomState(_CHATROOM_VISIBLE);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_NOT_VISIBLE state.
>>> +     * <p>
>>> +     * This constant has the String value
"Not Visible".
>>> +        */
>>> +       public static final String
_CHATROOM_NOT_VISIBLE = "Not 
>>> Visible";
>>> +
>>> +    /**
>>> +     * This constant value indicates that the
associated chat room is
>>> currently not in
>>> +     * a visible state.
>>> +     */
>>> +       public static final ChatRoomState
CHATROOM_NOT_VISIBLE = new
>>> ChatRoomState(_CHATROOM_NOT_VISIBLE);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_PASSWORD_REQUIRED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Password Required".
>>> +        */
>>> +       public static final String
_CHATROOM_PASSWORD_REQUIRED = 
>>> "Password
>>> Required";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * password required state.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_PASSWORD_REQUIRED 
>>> = new
>>> ChatRoomState(_CHATROOM_PASSWORD_REQUIRED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_PASSWORD_NOT_REQUIRED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Password Not Required".
>>> +        */
>>> +       public static final String
_CHATROOM_PASSWORD_NOT_REQUIRED =
>>> "Password Not Required";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in a
>>> +        * password required state.
>>> +        */
>>> +       public static final ChatRoomState 
>>> CHATROOM_PASSWORD_NOT_REQUIRED =
>>> new
ChatRoomState(_CHATROOM_PASSWORD_NOT_REQUIRED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_INVITATION_REQUIRED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Invitation Required".
>>> +        */
>>> +       public static final String
_CHATROOM_INVITATION_REQUIRED =
>>> "Invitation Required";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in an
>>> +        * invitation required state.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_INVITATION_REQUIRED =
>>> new
>>> ChatRoomState(_CHATROOM_INVITATION_REQUIRED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_INVITATION_NOT_REQUIRED
state.
>>> +     * <p>
>>> +     * This constant has the String value
"Invitation Not Required".
>>> +        */
>>> +       public static final String
_CHATROOM_INVITATION_NOT_REQUIRED =
>>> "Invitation Not Required";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in an
>>> +        * invitation required state.
>>> +        */
>>> +       public static final ChatRoomState 
>>> CHATROOM_INVITATION_NOT_REQUIRED
>>> =
>>> new
ChatRoomState(_CHATROOM_INVITATION_NOT_REQUIRED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_USER_NUMBER_LIMITED state.
>>> +     * <p>
>>> +     * This constant has the String value
"User Number Limited".
>>> +        */
>>> +       public static final String
_CHATROOM_USER_NUMBER_LIMITED = "User
>>> Number Limited";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * user number limited state.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_USER_NUMBER_LIMITED =
>>> new
>>> ChatRoomState(_CHATROOM_USER_NUMBER_LIMITED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_USER_NUMBER_NOT_LIMITED
state.
>>> +     * <p>
>>> +     * This constant has the String value
"User Number Not Limited".
>>> +        */
>>> +       public static final String
_CHATROOM_USER_NUMBER_NOT_LIMITED =
>>> "User
>>> Number Not Limited";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in a
>>> +        * user number limited state.
>>> +        */
>>> +       public static final ChatRoomState 
>>> CHATROOM_USER_NUMBER_NOT_LIMITED
>>> =
>>> new
ChatRoomState(_CHATROOM_USER_NUMBER_NOT_LIMITED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_MUTE state.
>>> +     * <p>
>>> +     * This constant has the String value
"Mute".
>>> +        */
>>> +       public static final String
_CHATROOM_MUTE = "Mute";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * mute state no messages are get from
this chat room.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_MUTE = new
>>> ChatRoomState(_CHATROOM_MUTE);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_NOT_MUTE state.
>>> +     * <p>
>>> +     * This constant has the String value
"Not Mute".
>>> +        */
>>> +       public static final String
_CHATROOM_NOT_MUTE = "Not Mute";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in a
>>> +        * mute state messages can be get from
this chat room.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_NOT_MUTE = new
>>> ChatRoomState(_CHATROOM_NOT_MUTE);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_EXTERNAL_MESSAGES_ALLOWED
state.
>>> +     * <p>
>>> +     * This constant has the String value
"External Messages Allowed".
>>> +        */
>>> +       public static final String
_CHATROOM_EXTERNAL_MESSAGES_ALLOWED =
>>> "External Messages Allowed";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in an
>>> +        * external messages allowed state,
this chat room can receive
>>> messages from user which
>>> +        * are not on this chat room.
>>> +        */
>>> +       public static final ChatRoomState
>>> CHATROOM_EXTERNAL_MESSAGES_ALLOWED
>>> = new
ChatRoomState(_CHATROOM_EXTERNAL_MESSAGES_ALLOWED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_EXTERNAL_MESSAGES_NOT_ALLOWED
state.
>>> +     * <p>
>>> +     * This constant has the String value
"External Messages Not
>>> Allowed".
>>> +        */
>>> +       public static final String 
>>> _CHATROOM_EXTERNAL_MESSAGES_NOT_ALLOWED
>>> =
>>> "External Messages Not Allowed";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in an
>>> +        * external messages allowed state,
this chat room can not 
>>> receive
>>> messages from user which
>>> +        * are not on this chat room.
>>> +        */
>>> +       public static final ChatRoomState
>>> CHATROOM_EXTERNAL_MESSAGES_NOT_ALLOWED = new
>>>
ChatRoomState(_CHATROOM_EXTERNAL_MESSAGES_NOT_ALLOWED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_REGISTERED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Registered".
>>> +        */
>>> +       public static final String
_CHATROOM_REGISTERED = "Registered";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * registered state.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_REGISTERED = new
>>> ChatRoomState(_CHATROOM_REGISTERED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_NOT_REGISTERED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Not Registered".
>>> +        */
>>> +       public static final String
_CHATROOM_NOT_REGISTERED = "Not
>>> Registered";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in a
>>> +        * registered state.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_NOT_REGISTERED = new
>>> ChatRoomState(_CHATROOM_NOT_REGISTERED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_SUBJECT_LOCKED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Subject Locked".
>>> +        */
>>> +       public static final String
_CHATROOM_SUBJECT_LOCKED = "Subject
>>> Locked";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * subject locked state, only admin
users can change the subject
>>> of
>>> this chat room.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_SUBJECT_LOCKED = new
>>> ChatRoomState(_CHATROOM_SUBJECT_LOCKED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_SUBJECT_NOT_LOCKED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Subject Not locked".
>>> +        */
>>> +       public static final String
_CHATROOM_SUBJECT_NOT_LOCKED = 
>>> "Subject
>>> Not locked";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently not in a
>>> +        * subject locked state, all users can
change the subject of 
>>> this
>>> chat room.
>>> +        */
>>> +       public static final ChatRoomState
CHATROOM_SUBJECT_NOT_LOCKED =
>>> new
>>> ChatRoomState(_CHATROOM_SUBJECT_NOT_LOCKED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_MESSAGE_FORMAT_ALLOWED state.
>>> +     * <p>
>>> +     * This constant has the String value
"Message Format Allowed".
>>> +        */
>>> +       public static final String
_CHATROOM_MESSAGE_FORMAT_ALLOWED =
>>> "Message Format Allowed";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * message format allowed, all colored,
underlined... 
>>> messages are
>>> allowed.
>>> +        */
>>> +       public static final ChatRoomState 
>>> CHATROOM_MESSAGE_FORMAT_ALLOWED
>>> =
>>> new
ChatRoomState(_CHATROOM_MESSAGE_FORMAT_ALLOWED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_MESSAGE_FORMAT_NOT_ALLOWED
state.
>>> +     * <p>
>>> +     * This constant has the String value
"Message Format Not Allowed".
>>> +        */
>>> +       public static final String 
>>> _CHATROOM_MESSAGE_FORMAT_NOT_ALLOWED =
>>> "Message Format Not Allowed";
>>> +
>>> +       /**
>>> +        * This constant value indicates that
the associated chat 
>>> room is
>>> currently in a
>>> +        * message format not allowed, all
colored, underlined... 
>>> messages
>>> are not allowed.
>>> +        */
>>> +       public static final ChatRoomState
>>> CHATROOM_MESSAGE_FORMAT_NOT_ALLOWED = new
>>>
ChatRoomState(_CHATROOM_MESSAGE_FORMAT_NOT_ALLOWED);
>>> +
>>> +       /**
>>> +     * This constant containing a String
representation of the
>>> +     * CHATROOM_MESSAGE_FORMAT_FILTERED
state.
>>> +     * <p>
>>> +     * This c