Class LocalMUCRoom
- java.lang.Object
-
- org.jivesoftware.openfire.muc.spi.LocalMUCRoom
-
- All Implemented Interfaces:
Externalizable,Serializable,GroupEventListener,MUCRoom,org.xmpp.resultsetmanagement.Result
public class LocalMUCRoom extends Object implements MUCRoom, GroupEventListener
Implementation of a chatroom that is being hosted by this JVM. A LocalMUCRoom could represent a persistent room which means that its configuration will be maintained in synch with its representation in the database.When running in a cluster each cluster node will have its own copy of local rooms. Persistent rooms will be loaded by each cluster node when starting up. Not persistent rooms will be copied from the senior cluster member. All room occupants will be copied from the senior cluster member too.
- Author:
- Gaston Dombiak
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description LocalMUCRoom()Do not use this constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description List<org.xmpp.packet.Presence>addAdmin(org.xmpp.packet.JID jid, MUCRole sendRole)Adds a new user to the list of admins.List<org.xmpp.packet.Presence>addAdmins(List<org.xmpp.packet.JID> newAdmins, MUCRole senderRole)Adds a list of users to the list of admins.voidaddFirstOwner(org.xmpp.packet.JID bareJID)Adds a new user to the list of owners.List<org.xmpp.packet.Presence>addMember(org.xmpp.packet.JID jid, String nickname, MUCRole sendRole)Adds a new user to the list of members.org.xmpp.packet.PresenceaddModerator(org.xmpp.packet.JID jid, MUCRole senderRole)Changes the role of the user within the room to moderator.List<org.xmpp.packet.Presence>addNone(org.xmpp.packet.JID jid, MUCRole senderRole)Removes the user from all the other affiliation list thus giving the user a NONE affiliation.List<org.xmpp.packet.Presence>addOutcast(org.xmpp.packet.JID jid, String reason, MUCRole senderRole)Adds a new user to the list of outcast users.List<org.xmpp.packet.Presence>addOwner(org.xmpp.packet.JID jid, MUCRole sendRole)Adds a new user to the list of owners.List<org.xmpp.packet.Presence>addOwners(List<org.xmpp.packet.JID> newOwners, MUCRole senderRole)Adds a list of users to the list of owners.org.xmpp.packet.PresenceaddParticipant(org.xmpp.packet.JID jid, String reason, MUCRole senderRole)Changes the role of the user within the room to participant.org.xmpp.packet.PresenceaddVisitor(org.xmpp.packet.JID jid, MUCRole senderRole)Changes the role of the user within the room to visitor.voidadminAdded(Group group, Map params)An administrator was added to a group.voidadminRemoved(Group group, Map params)An administrator was removed from a group.voidaffiliationAdded(AddAffiliation affiliation)voidbroadcast(BroadcastMessageRequest messageRequest)voidbroadcast(BroadcastPresenceRequest presenceRequest)booleancanAnyoneDiscoverJID()Returns true if every presence packet will include the JID of every occupant.booleancanBroadcastPresence(String roleToBroadcast)Returns true if the presences of the requested role will be broadcasted.booleancanChangeNickname()Returns true if room occupants are allowed to change their nicknames in the room.booleancanOccupantsChangeSubject()Returns true if participants are allowed to change the room's subject.booleancanOccupantsInvite()Returns true if occupants can invite other users to the room.StringcanSendPrivateMessage()Returns the minimal role of persons that are allowed to send private messages in the room.voidchangeSubject(org.xmpp.packet.Message packet, MUCRole role)Changes the room's subject if the occupant has enough permissions.org.xmpp.packet.PresencecreatePresence(org.xmpp.packet.Presence.Type presenceType)Create a new presence in this room for the given role.voiddestroyRoom(DestroyRoomRequest destroyRequest)voiddestroyRoom(org.xmpp.packet.JID alternateJID, String reason)Destroys the room.booleanequals(Object obj)Collection<org.xmpp.packet.JID>getAdmins()Returns a collection with the current list of admins.MUCRole.AffiliationgetAffiliation(org.xmpp.packet.JID jid)Returns the affiliation state of the user in the room.longgetChatLength()Returns the total length of the chat session.DategetCreationDate()Returns the date when the room was created.StringgetDescription()Returns a description set by the room's owners about the room.DategetEmptyDate()Returns the date when the last occupant left the room.FMUCHandlergetFmucHandler()longgetID()Obtain a unique numerical id for this room.IQAdminHandlergetIQAdminHandler()IQOwnerHandlergetIQOwnerHandler()org.xmpp.packet.JIDgetJID()Get the full JID of this room.intgetMaxUsers()Returns the maximum number of occupants that can be simultaneously in the room.Collection<org.xmpp.packet.JID>getMembers()Returns a collection with the current list of room members.Collection<MUCRole>getModerators()Returns a collection with the current list of room moderators.DategetModificationDate()Returns the last date when the room's configuration was modified.MultiUserChatServicegetMUCService()Get the multi user chat service the room is attached to.StringgetName()Get the name of this room.StringgetNaturalLanguageName()Returns the natural language name of the room.MUCRolegetOccupant(String nickname)Deprecated.PrefergetOccupantsByNickname(String)(user can be connected more than once)MUCRolegetOccupantByFullJID(org.xmpp.packet.JID jid)Returns the role of a given user in the room by his full JID ornullif no role was found for the specified user.Collection<MUCRole>getOccupants()Obtain the roles of all users in the chatroom.List<MUCRole>getOccupantsByBareJID(org.xmpp.packet.JID jid)Obtain the roles of a given user in the room by his bare JID.List<MUCRole>getOccupantsByNickname(String nickname)Obtain the roles of a given user by nickname.intgetOccupantsCount()Returns the number of occupants in the chatroom at the moment.Collection<org.xmpp.packet.JID>getOutcasts()Returns a collection with the current list of outcast users.Collection<org.xmpp.packet.JID>getOwners()Returns a collection with the current list of owners.Collection<MUCRole>getParticipants()Returns a collection with the current list of room participants.StringgetPassword()Returns the password that the user must provide to enter the room.StringgetReservedNickname(org.xmpp.packet.JID jid)Returns the reserved room nickname for the bare JID or null if none.MUCRolegetRole()Obtain the role of the chat server (mainly for addressing messages and presence).MUCRole.RolegetRole(org.xmpp.packet.JID jid)List<String>getRolesToBroadcastPresence()Returns the list of roles of which presence will be broadcasted to the rest of the occupants.MUCRoomHistorygetRoomHistory()Returns the history of the room which includes chat transcripts.StringgetSubject()Returns the last subject that some occupant set to the room.StringgetUID()voidgroupCreated(Group group, Map params)A group was created.voidgroupDeleting(Group group, Map params)A group is being deleted.voidgroupModified(Group group, Map params)A group's name, description, or an extended property was changed.inthashCode()booleanhasOccupant(String nickname)Determine if a given nickname is taken.booleanisFmucEnabled()Returns true if this room accepts FMUC joins.booleanisLocked()Returns true if the room is locked.booleanisLogEnabled()Returns true if the room's conversation is being logged.booleanisLoginRestrictedToNickname()Returns true if registered users can only join the room using their registered nickname.booleanisManuallyLocked()Returns true if the room is locked and it was locked by a room owner after the room was initially configured.booleanisMembersOnly()Returns true if the room requires an invitation to enter.booleanisModerated()Returns if the room in which only those with "voice" may send messages to all occupants.booleanisPasswordProtected()Returns true if a user cannot enter without first providing the correct password.booleanisPersistent()Returns true if the room is not destroyed if the last occupant exits.booleanisPublicRoom()Returns true if the room is searchable and visible through service discovery.booleanisRegistrationEnabled()Returns true if users are allowed to register with the room.MUCRolejoinRoom(String nickname, String password, HistoryRequest historyRequest, LocalMUCUser user, org.xmpp.packet.Presence presence)Joins the room using the given nickname.org.xmpp.packet.PresencekickOccupant(org.xmpp.packet.JID jid, org.xmpp.packet.JID actorJID, String actorNickname, String reason)Kicks a user from the room.voidleaveRoom(OccupantLeftEvent event)voidleaveRoom(MUCRole leaveRole)Remove a member from the chat room.voidlock(MUCRole senderRole)Locks the room so that users cannot join the room.voidmemberAdded(Group group, Map params)A member was added to a group.voidmemberAdded(AddMember addMember)voidmemberRemoved(Group group, Map params)A member was removed from a group.voidnicknameChanged(ChangeNickname changeNickname)voidnicknameChanged(MUCRole occupantRole, org.xmpp.packet.Presence newPresence, String oldNick, String newNick)An event callback fired whenever an occupant changes his nickname within the chatroom.voidoccupantAdded(OccupantAddedEvent event)voidoccupantUpdated(UpdateOccupant update)voidpresenceUpdated(UpdatePresence updatePresence)Updates the presence of an occupant with the new presence included in the request.voidpresenceUpdated(MUCRole occupantRole, org.xmpp.packet.Presence newPresence)Handles occupants updating their presence in the chatroom.voidreadExternal(ObjectInput in)voidsaveToDB()Saves the room configuration to the DB.voidsend(org.xmpp.packet.Packet packet, MUCRole sender)Sends a packet to the user.voidsendInvitation(org.xmpp.packet.JID to, String reason, MUCRole senderRole, List<org.dom4j.Element> extensions)Sends an invitation to a user.voidsendInvitationRejection(org.xmpp.packet.JID to, String reason, org.xmpp.packet.JID sender)Sends the rejection to the inviter.voidsendPrivatePacket(org.xmpp.packet.Packet packet, MUCRole senderRole)Sends a private packet to a selected occupant.voidsendPublicMessage(org.xmpp.packet.Message message, MUCRole senderRole)Sends a message to the all the occupants.voidserverBroadcast(String msg)Broadcast a given message to all members of this chat room.voidsetCanAnyoneDiscoverJID(boolean canAnyoneDiscoverJID)Sets if every presence packet will include the JID of every occupant.voidsetCanOccupantsChangeSubject(boolean canOccupantsChangeSubject)Sets if participants are allowed to change the room's subject.voidsetCanOccupantsInvite(boolean canOccupantsInvite)Sets if occupants can invite other users to the room.voidsetCanSendPrivateMessage(String role)Sets the minimal role of persons that are allowed to send private messages in the room.voidsetChangeNickname(boolean canChange)Sets if room occupants are allowed to change their nicknames in the room.voidsetCreationDate(Date creationDate)Sets the date when the room was created.voidsetDescription(String description)Sets a description set by the room's owners about the room.voidsetEmptyDate(Date emptyDate)Sets the date when the last occupant left the room.voidsetFmucEnabled(boolean fmucEnabled)Sets if this room accepts FMUC joins.voidsetID(long roomID)Sets a new room ID if the room has just been saved to the database or sets the saved ID of the room in the database while loading the room.voidsetLogEnabled(boolean logEnabled)Sets if the room's conversation is being logged.voidsetLoginRestrictedToNickname(boolean restricted)Sets if registered users can only join the room using their registered nickname.voidsetMaxUsers(int maxUsers)Sets the maximum number of occupants that can be simultaneously in the room.List<org.xmpp.packet.Presence>setMembersOnly(boolean membersOnly)Sets if the room requires an invitation to enter.voidsetModerated(boolean moderated)Sets if the room in which only those with "voice" may send messages to all occupants.voidsetModificationDate(Date modificationDate)Sets the last date when the room's configuration was modified.voidsetMUCService(MultiUserChatService service)Sets the multi user chat service the room is attached to.voidsetNaturalLanguageName(String naturalLanguageName)Sets the natural language name of the room.voidsetPassword(String password)Sets the password that the user must provide to enter the room.voidsetPersistent(boolean persistent)Sets if the room is not destroyed if the last occupant exits.voidsetPublicRoom(boolean publicRoom)Sets if the room is searchable and visible through service discovery.voidsetRegistrationEnabled(boolean registrationEnabled)Sets if users are allowed to register with the room.voidsetRolesToBroadcastPresence(List<String> rolesToBroadcastPresence)Sets the list of roles of which presence will be broadcasted to the rest of the occupants.voidsetSavedToDB(boolean saved)Sets if the room has already been made persistent.voidsetSubject(String subject)Sets the last subject that some occupant set to the room.voidunlock(MUCRole senderRole)Unlocks the room so that users can join the room.voidupdateConfiguration(LocalMUCRoom otherRoom)org.xmpp.packet.PresenceupdateOccupant(UpdateOccupantRequest updateRequest)booleanwasSavedToDB()Returns true if the room has already been made persistent.voidwriteExternal(ObjectOutput out)
-
-
-
Method Detail
-
getName
public String getName()
Description copied from interface:MUCRoomGet the name of this room.
-
getJID
public org.xmpp.packet.JID getJID()
Description copied from interface:MUCRoomGet the full JID of this room.
-
getMUCService
public MultiUserChatService getMUCService()
Description copied from interface:MUCRoomGet the multi user chat service the room is attached to.- Specified by:
getMUCServicein interfaceMUCRoom- Returns:
- the MultiUserChatService instance that the room is attached to.
-
setMUCService
public void setMUCService(MultiUserChatService service)
Description copied from interface:MUCRoomSets the multi user chat service the room is attached to.- Specified by:
setMUCServicein interfaceMUCRoom- Parameters:
service- The MultiUserChatService that the room is attached to (cannot benull).
-
getID
public long getID()
Description copied from interface:MUCRoomObtain a unique numerical id for this room. Useful for storing rooms in databases. If the room is persistent or is logging the conversation then the returned ID won't be -1.
-
setID
public void setID(long roomID)
Description copied from interface:MUCRoomSets a new room ID if the room has just been saved to the database or sets the saved ID of the room in the database while loading the room.
-
getCreationDate
public Date getCreationDate()
Description copied from interface:MUCRoomReturns the date when the room was created.- Specified by:
getCreationDatein interfaceMUCRoom- Returns:
- the date when the room was created.
-
setCreationDate
public void setCreationDate(Date creationDate)
Description copied from interface:MUCRoomSets the date when the room was created.- Specified by:
setCreationDatein interfaceMUCRoom- Parameters:
creationDate- the date when the room was created (cannot benull).
-
getModificationDate
public Date getModificationDate()
Description copied from interface:MUCRoomReturns the last date when the room's configuration was modified. If the room's configuration was never modified then the creation date will be returned.- Specified by:
getModificationDatein interfaceMUCRoom- Returns:
- the last date when the room's configuration was modified.
-
setModificationDate
public void setModificationDate(Date modificationDate)
Description copied from interface:MUCRoomSets the last date when the room's configuration was modified. If the room's configuration was never modified then the initial value will be the same as the creation date.- Specified by:
setModificationDatein interfaceMUCRoom- Parameters:
modificationDate- the last date when the room's configuration was modified (cannot benull).
-
setEmptyDate
public void setEmptyDate(Date emptyDate)
Description copied from interface:MUCRoomSets the date when the last occupant left the room. A null value means that there are occupants in the room at the moment.- Specified by:
setEmptyDatein interfaceMUCRoom- Parameters:
emptyDate- the date when the last occupant left the room or null if there are occupants in the room (can benull).
-
getEmptyDate
public Date getEmptyDate()
Description copied from interface:MUCRoomReturns the date when the last occupant left the room. A null value means that there are occupants in the room at the moment.- Specified by:
getEmptyDatein interfaceMUCRoom- Returns:
- the date when the last occupant left the room or null if there are occupants in the room at the moment.
-
getRole
public MUCRole getRole()
Description copied from interface:MUCRoomObtain the role of the chat server (mainly for addressing messages and presence).
-
getOccupant
public MUCRole getOccupant(String nickname) throws UserNotFoundException
Deprecated.PrefergetOccupantsByNickname(String)(user can be connected more than once)Description copied from interface:MUCRoomObtain the first role of a given user by nickname.- Specified by:
getOccupantin interfaceMUCRoom- Parameters:
nickname- The nickname of the user you'd like to obtain (cannot benull)- Returns:
- The user's role in the room
- Throws:
UserNotFoundException- If there is no user with the given nickname
-
getOccupantsByNickname
public List<MUCRole> getOccupantsByNickname(String nickname) throws UserNotFoundException
Description copied from interface:MUCRoomObtain the roles of a given user by nickname. A user can be connected to a room more than once.- Specified by:
getOccupantsByNicknamein interfaceMUCRoom- Parameters:
nickname- The nickname of the user you'd like to obtain (cannot benull)- Returns:
- The user's role in the room
- Throws:
UserNotFoundException- If there is no user with the given nickname
-
getOccupantsByBareJID
public List<MUCRole> getOccupantsByBareJID(org.xmpp.packet.JID jid) throws UserNotFoundException
Description copied from interface:MUCRoomObtain the roles of a given user in the room by his bare JID. A user can have several roles, one for each client resource from which the user has joined the room.- Specified by:
getOccupantsByBareJIDin interfaceMUCRoom- Parameters:
jid- The bare jid of the user you'd like to obtain (cannot benull).- Returns:
- The user's roles in the room
- Throws:
UserNotFoundException- If there is no user with the given nickname
-
getOccupantByFullJID
public MUCRole getOccupantByFullJID(org.xmpp.packet.JID jid)
Description copied from interface:MUCRoomReturns the role of a given user in the room by his full JID ornullif no role was found for the specified user.- Specified by:
getOccupantByFullJIDin interfaceMUCRoom- Parameters:
jid- The full jid of the user you'd like to obtain (cannot benull).- Returns:
- The user's role in the room or null if not found.
-
getOccupants
public Collection<MUCRole> getOccupants()
Description copied from interface:MUCRoomObtain the roles of all users in the chatroom.- Specified by:
getOccupantsin interfaceMUCRoom- Returns:
- a collection with all users in the chatroom
-
getOccupantsCount
public int getOccupantsCount()
Description copied from interface:MUCRoomReturns the number of occupants in the chatroom at the moment.- Specified by:
getOccupantsCountin interfaceMUCRoom- Returns:
- int the number of occupants in the chatroom at the moment.
-
hasOccupant
public boolean hasOccupant(String nickname)
Description copied from interface:MUCRoomDetermine if a given nickname is taken.- Specified by:
hasOccupantin interfaceMUCRoom- Parameters:
nickname- The nickname of the user you'd like to obtain (cannot benull).- Returns:
- True if a nickname is taken
-
getReservedNickname
public String getReservedNickname(org.xmpp.packet.JID jid)
Description copied from interface:MUCRoomReturns the reserved room nickname for the bare JID or null if none.- Specified by:
getReservedNicknamein interfaceMUCRoom- Parameters:
jid- The bare jid of the user of which you'd like to obtain his reserved nickname (cannot benull).- Returns:
- the reserved room nickname for the bare JID or null if none.
-
getAffiliation
public MUCRole.Affiliation getAffiliation(@Nonnull org.xmpp.packet.JID jid)
Description copied from interface:MUCRoomReturns the affiliation state of the user in the room. Possible affiliations are MUCRole.OWNER, MUCRole.ADMINISTRATOR, MUCRole.MEMBER, MUCRole.OUTCAST and MUCRole.NONE.Note: Prerequisite - A lock must already be obtained before sending this message.
- Specified by:
getAffiliationin interfaceMUCRoom- Parameters:
jid- The bare jid of the user of which you'd like to obtain his affiliation (cannot benull).- Returns:
- the affiliation state of the user in the room.
-
getRole
public MUCRole.Role getRole(@Nonnull org.xmpp.packet.JID jid)
-
joinRoom
public MUCRole joinRoom(@Nonnull String nickname, @Nullable String password, @Nullable HistoryRequest historyRequest, @Nonnull LocalMUCUser user, @Nonnull org.xmpp.packet.Presence presence) throws UnauthorizedException, UserAlreadyExistsException, RoomLockedException, ForbiddenException, RegistrationRequiredException, ConflictException, ServiceUnavailableException, NotAcceptableException
Description copied from interface:MUCRoomJoins the room using the given nickname.- Specified by:
joinRoomin interfaceMUCRoom- Parameters:
nickname- The nickname the user wants to use in the chatroom (cannot benull).password- The password provided by the user to enter the chatroom or null if none.historyRequest- The amount of history that the user request or null meaning default.user- The user joining (cannot benull).presence- The presence sent by the user to join the room (cannot benull).- Returns:
- The role created for the user.
- Throws:
UnauthorizedException- If the user doesn't have permission to join the room.UserAlreadyExistsException- If the nickname is already taken.RoomLockedException- If the user is trying to join a locked room.ForbiddenException- If the user is an outcast.RegistrationRequiredException- If the user is not a member of a members-only room.ConflictException- If another user attempts to join the room with a nickname reserved by the first user.ServiceUnavailableException- If the user cannot join the room since the max number of users has been reached.NotAcceptableException- If the registered user is trying to join with a nickname different than the reserved nickname.
-
occupantAdded
public void occupantAdded(OccupantAddedEvent event)
-
leaveRoom
public void leaveRoom(MUCRole leaveRole)
Description copied from interface:MUCRoomRemove a member from the chat room.
-
leaveRoom
public void leaveRoom(OccupantLeftEvent event)
-
destroyRoom
public void destroyRoom(DestroyRoomRequest destroyRequest)
-
destroyRoom
public void destroyRoom(org.xmpp.packet.JID alternateJID, String reason)Description copied from interface:MUCRoomDestroys the room. Each occupant will be removed and will receive a presence stanza of type "unavailable" whose "from" attribute will be the occupant's nickname that the user knows he or she has been removed from the room.- Specified by:
destroyRoomin interfaceMUCRoom- Parameters:
alternateJID- an optional alternate JID. Commonly used to provide a replacement room. (can benull)reason- an optional reason why the room was destroyed (can benull).
-
createPresence
public org.xmpp.packet.Presence createPresence(org.xmpp.packet.Presence.Type presenceType)
Description copied from interface:MUCRoomCreate a new presence in this room for the given role.- Specified by:
createPresencein interfaceMUCRoom- Parameters:
presenceType- Type of presence to create (cannot benull).- Returns:
- The new presence
-
serverBroadcast
public void serverBroadcast(String msg)
Description copied from interface:MUCRoomBroadcast a given message to all members of this chat room. The sender is always set to be the chatroom.- Specified by:
serverBroadcastin interfaceMUCRoom- Parameters:
msg- The message to broadcast (cannot benull)
-
sendPublicMessage
public void sendPublicMessage(org.xmpp.packet.Message message, MUCRole senderRole) throws ForbiddenExceptionDescription copied from interface:MUCRoomSends a message to the all the occupants. In a moderated room, this privilege is restricted to occupants with a role of participant or higher. In an unmoderated room, any occupant can send a message to all other occupants.- Specified by:
sendPublicMessagein interfaceMUCRoom- Parameters:
message- The message to send (cannot benull).senderRole- the role of the user that is trying to send a public message (cannot benull).- Throws:
ForbiddenException- If the user is not allowed to send a public message (i.e. does not have voice in the room).
-
sendPrivatePacket
public void sendPrivatePacket(org.xmpp.packet.Packet packet, MUCRole senderRole) throws NotFoundException, ForbiddenExceptionDescription copied from interface:MUCRoomSends a private packet to a selected occupant. The packet can be a Message for private conversation between room occupants or IQ packets when an occupant wants to send IQ packets to other room occupants.- Specified by:
sendPrivatePacketin interfaceMUCRoom- Parameters:
packet- The packet to send.senderRole- the role of the user that is trying to send a public message.- Throws:
NotFoundException- If the user is sending a packet to a room JID that does not exist.ForbiddenException- If a user of this role is not permitted to send private messages in this room.
-
send
public void send(@Nonnull org.xmpp.packet.Packet packet, @Nonnull MUCRole sender)
Description copied from interface:MUCRoomSends a packet to the user.
-
broadcast
public void broadcast(BroadcastPresenceRequest presenceRequest)
-
broadcast
public void broadcast(BroadcastMessageRequest messageRequest)
-
getChatLength
public long getChatLength()
Description copied from interface:MUCRoomReturns the total length of the chat session.- Specified by:
getChatLengthin interfaceMUCRoom- Returns:
- length of chat session in milliseconds.
-
addFirstOwner
public void addFirstOwner(org.xmpp.packet.JID bareJID)
Description copied from interface:MUCRoomAdds a new user to the list of owners. The user is the actual creator of the room. Only the MultiUserChatServer should use this method. Regular owners list maintenance MUST be done throughMUCRoom.addOwner(JID jid,MUCRole).- Specified by:
addFirstOwnerin interfaceMUCRoom- Parameters:
bareJID- The bare JID of the user to add as owner (cannot benull).
-
addOwner
public List<org.xmpp.packet.Presence> addOwner(org.xmpp.packet.JID jid, MUCRole sendRole) throws ForbiddenException
Description copied from interface:MUCRoomAdds a new user to the list of owners.- Specified by:
addOwnerin interfaceMUCRoom- Parameters:
jid- The JID of the user to add as owner (cannot benull).sendRole- the role of the user that is trying to modify the owners list (cannot benull).- Returns:
- the list of updated presences of all the client resources that the client used to join the room.
- Throws:
ForbiddenException- If the user is not allowed to modify the owner list.
-
addAdmin
public List<org.xmpp.packet.Presence> addAdmin(org.xmpp.packet.JID jid, MUCRole sendRole) throws ForbiddenException, ConflictException
Description copied from interface:MUCRoomAdds a new user to the list of admins.- Specified by:
addAdminin interfaceMUCRoom- Parameters:
jid- The JID of the user to add as admin (cannot benull).sendRole- The role of the user that is trying to modify the admins list (cannot benull).- Returns:
- the list of updated presences of all the client resources that the client used to join the room.
- Throws:
ForbiddenException- If the user is not allowed to modify the admin list.ConflictException- If the room was going to lose all its owners.
-
addMember
public List<org.xmpp.packet.Presence> addMember(org.xmpp.packet.JID jid, String nickname, MUCRole sendRole) throws ForbiddenException, ConflictException
Description copied from interface:MUCRoomAdds a new user to the list of members.- Specified by:
addMemberin interfaceMUCRoom- Parameters:
jid- The JID of the user to add as a member (cannot benull).nickname- The reserved nickname of the member for the room or null if none.sendRole- the role of the user that is trying to modify the members list (cannot benull).- Returns:
- the list of updated presences of all the client resources that the client used to join the room.
- Throws:
ForbiddenException- If the user is not allowed to modify the members list.ConflictException- If the desired room nickname is already reserved for the room or if the room was going to lose all its owners.
-
addOutcast
public List<org.xmpp.packet.Presence> addOutcast(org.xmpp.packet.JID jid, String reason, MUCRole senderRole) throws NotAllowedException, ForbiddenException, ConflictException
Description copied from interface:MUCRoomAdds a new user to the list of outcast users.- Specified by:
addOutcastin interfaceMUCRoom- Parameters:
jid- The JID of the user to add as an outcast (cannot benull).reason- an optional reason why the user was banned (can benull).senderRole- The role of the user that initiated the ban (cannot benull).- Returns:
- the list of updated presences of all the client resources that the client used to join the room.
- Throws:
NotAllowedException- Thrown if trying to ban an owner or an administrator.ForbiddenException- If the user is not allowed to modify the outcast list.ConflictException- If the room was going to lose all its owners.
-
addNone
public List<org.xmpp.packet.Presence> addNone(org.xmpp.packet.JID jid, MUCRole senderRole) throws ForbiddenException, ConflictException
Description copied from interface:MUCRoomRemoves the user from all the other affiliation list thus giving the user a NONE affiliation.- Specified by:
addNonein interfaceMUCRoom- Parameters:
jid- The JID of the user to keep with a NONE affiliation (cannot benull).senderRole- The role of the user that set the affiliation to none (cannot benull).- Returns:
- the list of updated presences of all the client resources that the client used to join the room or null if none was updated.
- Throws:
ForbiddenException- If the user is not allowed to modify the none list.ConflictException- If the room was going to lose all its owners.
-
isLocked
public boolean isLocked()
Description copied from interface:MUCRoomReturns true if the room is locked. The lock will persist for a defined period of time. If the room owner does not configure the room within the timeout period, the room owner is assumed to have accepted the default configuration.
-
isManuallyLocked
public boolean isManuallyLocked()
Description copied from interface:MUCRoomReturns true if the room is locked and it was locked by a room owner after the room was initially configured.- Specified by:
isManuallyLockedin interfaceMUCRoom- Returns:
- true if the room is locked and it was locked by a room owner after the room was initially configured.
-
presenceUpdated
public void presenceUpdated(MUCRole occupantRole, org.xmpp.packet.Presence newPresence)
Handles occupants updating their presence in the chatroom. Assumes the user updates their presence whenever their availability in the room changes. This method should not be called to handle other presence related updates, such as nickname changes. An event callback fired whenever an occupant updated his presence in the chatroom.- Specified by:
presenceUpdatedin interfaceMUCRoom- Parameters:
occupantRole- occupant that changed his presence in the room (cannot benull).newPresence- presence sent by the occupant (cannot benull).
-
presenceUpdated
public void presenceUpdated(UpdatePresence updatePresence)
Updates the presence of an occupant with the new presence included in the request.- Parameters:
updatePresence- request to update an occupant's presence.
-
occupantUpdated
public void occupantUpdated(UpdateOccupant update)
-
updateOccupant
public org.xmpp.packet.Presence updateOccupant(UpdateOccupantRequest updateRequest) throws NotAllowedException
- Throws:
NotAllowedException
-
memberAdded
public void memberAdded(AddMember addMember)
-
affiliationAdded
public void affiliationAdded(AddAffiliation affiliation)
-
nicknameChanged
public void nicknameChanged(MUCRole occupantRole, org.xmpp.packet.Presence newPresence, String oldNick, String newNick)
Description copied from interface:MUCRoomAn event callback fired whenever an occupant changes his nickname within the chatroom.- Specified by:
nicknameChangedin interfaceMUCRoom- Parameters:
occupantRole- occupant that changed his nickname in the room (cannot benull).newPresence- presence sent by the occupant with the new nickname (cannot benull).oldNick- old nickname within the room (cannot benull).newNick- new nickname within the room (cannot benull).
-
nicknameChanged
public void nicknameChanged(ChangeNickname changeNickname)
-
changeSubject
public void changeSubject(org.xmpp.packet.Message packet, MUCRole role) throws ForbiddenExceptionDescription copied from interface:MUCRoomChanges the room's subject if the occupant has enough permissions. The occupant must be a moderator or the room must be configured so that anyone can change its subject. Otherwise a forbidden exception will be thrown.The new subject will be added to the history of the room.
- Specified by:
changeSubjectin interfaceMUCRoom- Parameters:
packet- the sent packet to change the room's subject (cannot benull).role- the role of the user that is trying to change the subject (cannot benull).- Throws:
ForbiddenException- If the user is not allowed to change the subject.
-
getSubject
public String getSubject()
Description copied from interface:MUCRoomReturns the last subject that some occupant set to the room.- Specified by:
getSubjectin interfaceMUCRoom- Returns:
- the last subject that some occupant set to the room.
-
setSubject
public void setSubject(String subject)
Description copied from interface:MUCRoomSets the last subject that some occupant set to the room. This message will only be used when loading a room from the database.- Specified by:
setSubjectin interfaceMUCRoom- Parameters:
subject- the last known subject of the room (cannot benull).
-
sendInvitation
public void sendInvitation(org.xmpp.packet.JID to, String reason, MUCRole senderRole, List<org.dom4j.Element> extensions) throws ForbiddenException, CannotBeInvitedExceptionDescription copied from interface:MUCRoomSends an invitation to a user. The invitation will be sent as if the room is inviting the user. The invitation will include the original occupant the sent the invitation together with the reason for the invitation if any. Since the invitee could be offline at the moment we need the originating session so that the offline strategy could potentially bounce the message with the invitation.- Specified by:
sendInvitationin interfaceMUCRoom- Parameters:
to- the JID of the user that is being invited.reason- the reason of the invitation or null if none.senderRole- the role of the occupant that sent the invitation.extensions- the list of extensions sent with the original message invitation or null if none.- Throws:
ForbiddenException- If the user is not allowed to send the invitation.CannotBeInvitedException- (Optionally) If the user being invited does not have access to the room
-
sendInvitationRejection
public void sendInvitationRejection(org.xmpp.packet.JID to, String reason, org.xmpp.packet.JID sender)Description copied from interface:MUCRoomSends the rejection to the inviter. The rejection will be sent as if the room is rejecting the invitation is named of the invitee. The rejection will include the address of the invitee together with the reason for the rejection if any. Since the inviter could be offline at the moment we need the originating session so that the offline strategy could potentially bounce the message with the rejection.- Specified by:
sendInvitationRejectionin interfaceMUCRoom- Parameters:
to- the JID of the user that is originated the invitation.reason- the reason for the rejection or null if none.sender- the JID of the invitee that is rejecting the invitation.
-
getIQOwnerHandler
public IQOwnerHandler getIQOwnerHandler()
- Specified by:
getIQOwnerHandlerin interfaceMUCRoom
-
getIQAdminHandler
public IQAdminHandler getIQAdminHandler()
- Specified by:
getIQAdminHandlerin interfaceMUCRoom
-
getFmucHandler
public FMUCHandler getFmucHandler()
- Specified by:
getFmucHandlerin interfaceMUCRoom
-
getRoomHistory
public MUCRoomHistory getRoomHistory()
Description copied from interface:MUCRoomReturns the history of the room which includes chat transcripts.- Specified by:
getRoomHistoryin interfaceMUCRoom- Returns:
- the history of the room which includes chat transcripts.
-
getOwners
public Collection<org.xmpp.packet.JID> getOwners()
Description copied from interface:MUCRoomReturns a collection with the current list of owners. The collection contains the bareJID of the users with owner affiliation.
-
getAdmins
public Collection<org.xmpp.packet.JID> getAdmins()
Description copied from interface:MUCRoomReturns a collection with the current list of admins. The collection contains the bareJID of the users with admin affiliation.
-
getMembers
public Collection<org.xmpp.packet.JID> getMembers()
Description copied from interface:MUCRoomReturns a collection with the current list of room members. The collection contains the bareJID of the users with member affiliation. If the room is not members-only then the list will contain the users that registered with the room and therefore they may have reserved a nickname.- Specified by:
getMembersin interfaceMUCRoom- Returns:
- a collection with the current list of members.
-
getOutcasts
public Collection<org.xmpp.packet.JID> getOutcasts()
Description copied from interface:MUCRoomReturns a collection with the current list of outcast users. An outcast user is not allowed to join the room again. The collection contains the bareJID of the users with outcast affiliation.- Specified by:
getOutcastsin interfaceMUCRoom- Returns:
- a collection with the current list of outcast users.
-
getModerators
public Collection<MUCRole> getModerators()
Description copied from interface:MUCRoomReturns a collection with the current list of room moderators. The collection contains the MUCRole of the occupants with moderator role.- Specified by:
getModeratorsin interfaceMUCRoom- Returns:
- a collection with the current list of moderators.
-
getParticipants
public Collection<MUCRole> getParticipants()
Description copied from interface:MUCRoomReturns a collection with the current list of room participants. The collection contains the MUCRole of the occupants with participant role.- Specified by:
getParticipantsin interfaceMUCRoom- Returns:
- a collection with the current list of moderators.
-
addModerator
public org.xmpp.packet.Presence addModerator(org.xmpp.packet.JID jid, MUCRole senderRole) throws ForbiddenExceptionDescription copied from interface:MUCRoomChanges the role of the user within the room to moderator. A moderator is allowed to kick occupants as well as granting/revoking voice from occupants.- Specified by:
addModeratorin interfaceMUCRoom- Parameters:
jid- The full JID of the occupant to give moderator privileges (cannot benull).senderRole- The role of the user that is granting moderator privileges to an occupant (cannot benull).- Returns:
- the updated presence of the occupant or
nullif the JID does not belong to an existing occupant. - Throws:
ForbiddenException- If the user is not allowed to grant moderator privileges.
-
addParticipant
public org.xmpp.packet.Presence addParticipant(org.xmpp.packet.JID jid, String reason, MUCRole senderRole) throws NotAllowedException, ForbiddenExceptionDescription copied from interface:MUCRoomChanges the role of the user within the room to participant. A participant is allowed to send messages to the room (i.e. has voice) and may change the room's subject.- Specified by:
addParticipantin interfaceMUCRoom- Parameters:
jid- The full JID of the occupant to give participant privileges (cannot benull).reason- The reason why participant privileges were gave to the user ornullif none.senderRole- The role of the user that is granting participant privileges to an occupant (cannot benull).- Returns:
- the updated presence of the occupant or
nullif the JID does not belong to an existing occupant. - Throws:
NotAllowedException- If trying to change the moderator role to an owner or an admin.ForbiddenException- If the user is not allowed to grant participant privileges.
-
addVisitor
public org.xmpp.packet.Presence addVisitor(org.xmpp.packet.JID jid, MUCRole senderRole) throws NotAllowedException, ForbiddenExceptionDescription copied from interface:MUCRoomChanges the role of the user within the room to visitor. A visitor can receive messages but is not allowed to send messages to the room (i.e. does not has voice) and may invite others to the room.- Specified by:
addVisitorin interfaceMUCRoom- Parameters:
jid- the full JID of the occupant to change to visitor (cannot benull).senderRole- the role of the user that is changing the role to visitor (cannot benull).- Returns:
- the updated presence of the occupant or
nullif the JID does not belong to an existing occupant. - Throws:
NotAllowedException- if trying to change the moderator role to an owner or an admin.ForbiddenException- if the user is not a moderator.
-
kickOccupant
public org.xmpp.packet.Presence kickOccupant(org.xmpp.packet.JID jid, org.xmpp.packet.JID actorJID, String actorNickname, String reason) throws NotAllowedExceptionDescription copied from interface:MUCRoomKicks a user from the room. If the user was in the room, the returned updated presence will be sent to the remaining occupants.- Specified by:
kickOccupantin interfaceMUCRoom- Parameters:
jid- The full JID of the kicked user (cannot benull).actorJID- The JID of the actor that initiated the kick (cannot benull).actorNickname- The actor nickname.reason- An optional reason why the user was kicked (can benull).- Returns:
- the updated presence of the kicked user or null if the user was not in the room.
- Throws:
NotAllowedException- Thrown if trying to ban an owner or an administrator.
-
canAnyoneDiscoverJID
public boolean canAnyoneDiscoverJID()
Description copied from interface:MUCRoomReturns true if every presence packet will include the JID of every occupant. This configuration can be modified by the owner while editing the room's configuration.- Specified by:
canAnyoneDiscoverJIDin interfaceMUCRoom- Returns:
- true if every presence packet will include the JID of every occupant.
-
setCanAnyoneDiscoverJID
public void setCanAnyoneDiscoverJID(boolean canAnyoneDiscoverJID)
Description copied from interface:MUCRoomSets if every presence packet will include the JID of every occupant. This configuration can be modified by the owner while editing the room's configuration.- Specified by:
setCanAnyoneDiscoverJIDin interfaceMUCRoom- Parameters:
canAnyoneDiscoverJID- boolean that specifies if every presence packet will include the JID of every occupant.
-
canSendPrivateMessage
public String canSendPrivateMessage()
Description copied from interface:MUCRoomReturns the minimal role of persons that are allowed to send private messages in the room. The returned value is any one of: "anyone", "moderators", "participants", "none".- Specified by:
canSendPrivateMessagein interfaceMUCRoom- Returns:
- The minimal role of persons that are allowed to send private messages in the room (never null).
-
setCanSendPrivateMessage
public void setCanSendPrivateMessage(String role)
Description copied from interface:MUCRoomSets the minimal role of persons that are allowed to send private messages in the room. The provided value is any one of: "anyone", "moderators", "participants", "none". If another value is set, "anyone" is used instead.- Specified by:
setCanSendPrivateMessagein interfaceMUCRoom- Parameters:
role- The minimal role of persons that are allowed to send private messages in the room (never null).
-
canOccupantsChangeSubject
public boolean canOccupantsChangeSubject()
Description copied from interface:MUCRoomReturns true if participants are allowed to change the room's subject.- Specified by:
canOccupantsChangeSubjectin interfaceMUCRoom- Returns:
- true if participants are allowed to change the room's subject.
-
setCanOccupantsChangeSubject
public void setCanOccupantsChangeSubject(boolean canOccupantsChangeSubject)
Description copied from interface:MUCRoomSets if participants are allowed to change the room's subject.- Specified by:
setCanOccupantsChangeSubjectin interfaceMUCRoom- Parameters:
canOccupantsChangeSubject- boolean that specifies if participants are allowed to change the room's subject.
-
canOccupantsInvite
public boolean canOccupantsInvite()
Description copied from interface:MUCRoomReturns true if occupants can invite other users to the room. If the room does not require an invitation to enter (i.e. is not members-only) then any occupant can send invitations. On the other hand, if the room is members-only and occupants cannot send invitation then only the room owners and admins are allowed to send invitations.- Specified by:
canOccupantsInvitein interfaceMUCRoom- Returns:
- true if occupants can invite other users to the room.
-
setCanOccupantsInvite
public void setCanOccupantsInvite(boolean canOccupantsInvite)
Description copied from interface:MUCRoomSets if occupants can invite other users to the room. If the room does not require an invitation to enter (i.e. is not members-only) then any occupant can send invitations. On the other hand, if the room is members-only and occupants cannot send invitation then only the room owners and admins are allowed to send invitations.- Specified by:
setCanOccupantsInvitein interfaceMUCRoom- Parameters:
canOccupantsInvite- boolean that specified in any occupant can invite other users to the room.
-
getNaturalLanguageName
public String getNaturalLanguageName()
Description copied from interface:MUCRoomReturns the natural language name of the room. This name can only be modified by room owners. It's mainly used for users while discovering rooms hosted by the Multi-User Chat service.- Specified by:
getNaturalLanguageNamein interfaceMUCRoom- Returns:
- the natural language name of the room.
-
setNaturalLanguageName
public void setNaturalLanguageName(String naturalLanguageName)
Description copied from interface:MUCRoomSets the natural language name of the room. This name can only be modified by room owners. It's mainly used for users while discovering rooms hosted by the Multi-User Chat service.- Specified by:
setNaturalLanguageNamein interfaceMUCRoom- Parameters:
naturalLanguageName- the natural language name of the room.
-
getDescription
public String getDescription()
Description copied from interface:MUCRoomReturns a description set by the room's owners about the room. This information will be used when discovering extended information about the room.- Specified by:
getDescriptionin interfaceMUCRoom- Returns:
- a description set by the room's owners about the room.
-
setDescription
public void setDescription(String description)
Description copied from interface:MUCRoomSets a description set by the room's owners about the room. This information will be used when discovering extended information about the room.- Specified by:
setDescriptionin interfaceMUCRoom- Parameters:
description- a description set by the room's owners about the room.
-
isMembersOnly
public boolean isMembersOnly()
Description copied from interface:MUCRoomReturns true if the room requires an invitation to enter. That is if the room is members-only.- Specified by:
isMembersOnlyin interfaceMUCRoom- Returns:
- true if the room requires an invitation to enter.
-
setMembersOnly
public List<org.xmpp.packet.Presence> setMembersOnly(boolean membersOnly)
Description copied from interface:MUCRoomSets if the room requires an invitation to enter. That is if the room is members-only.- Specified by:
setMembersOnlyin interfaceMUCRoom- Parameters:
membersOnly- if true then the room is members-only.- Returns:
- the list of updated presences of all the occupants that aren't members of the room if the room is now members-only.
-
isLogEnabled
public boolean isLogEnabled()
Description copied from interface:MUCRoomReturns true if the room's conversation is being logged. If logging is activated the room conversation will be saved to the database every couple of minutes. The saving frequency is the same for all the rooms and can be configured by changing the property "xmpp.muc.tasks.log.timeout" of MultiUserChatServerImpl.- Specified by:
isLogEnabledin interfaceMUCRoom- Returns:
- true if the room's conversation is being logged.
-
setLogEnabled
public void setLogEnabled(boolean logEnabled)
Description copied from interface:MUCRoomSets if the room's conversation is being logged. If logging is activated the room conversation will be saved to the database every couple of minutes. The saving frequency is the same for all the rooms and can be configured by changing the property "xmpp.muc.tasks.log.timeout" of MultiUserChatServerImpl.- Specified by:
setLogEnabledin interfaceMUCRoom- Parameters:
logEnabled- boolean that specified if the room's conversation must be logged.
-
setLoginRestrictedToNickname
public void setLoginRestrictedToNickname(boolean restricted)
Description copied from interface:MUCRoomSets if registered users can only join the room using their registered nickname. A not_acceptable error will be returned if the user tries to join the room with a nickname different than the reserved nickname.- Specified by:
setLoginRestrictedToNicknamein interfaceMUCRoom- Parameters:
restricted- if registered users can only join the room using their registered nickname.
-
isLoginRestrictedToNickname
public boolean isLoginRestrictedToNickname()
Description copied from interface:MUCRoomReturns true if registered users can only join the room using their registered nickname. By default, registered users can join the room using any nickname. A not_acceptable error will be returned if the user tries to join the room with a nickname different than the reserved nickname.- Specified by:
isLoginRestrictedToNicknamein interfaceMUCRoom- Returns:
- true if registered users can only join the room using their registered nickname.
-
setChangeNickname
public void setChangeNickname(boolean canChange)
Description copied from interface:MUCRoomSets if room occupants are allowed to change their nicknames in the room. By default, occupants are allowed to change their nicknames. A not_acceptable error will be returned if an occupant tries to change his nickname and this feature is not enabled.Notice that this feature is not supported by the MUC spec so answering a not_acceptable error may break some cliens.
- Specified by:
setChangeNicknamein interfaceMUCRoom- Parameters:
canChange- if room occupants are allowed to change their nicknames in the room.
-
canChangeNickname
public boolean canChangeNickname()
Description copied from interface:MUCRoomReturns true if room occupants are allowed to change their nicknames in the room. By default, occupants are allowed to change their nicknames. A not_acceptable error will be returned if an occupant tries to change his nickname and this feature is not enabled.Notice that this feature is not supported by the MUC spec so answering a not_acceptable error may break some cliens.
- Specified by:
canChangeNicknamein interfaceMUCRoom- Returns:
- true if room occupants are allowed to change their nicknames in the room.
-
setRegistrationEnabled
public void setRegistrationEnabled(boolean registrationEnabled)
Description copied from interface:MUCRoomSets if users are allowed to register with the room. By default, room registration is enabled. A not_allowed error will be returned if a user tries to register with the room and this feature is disabled.- Specified by:
setRegistrationEnabledin interfaceMUCRoom- Parameters:
registrationEnabled- if users are allowed to register with the room.
-
isRegistrationEnabled
public boolean isRegistrationEnabled()
Description copied from interface:MUCRoomReturns true if users are allowed to register with the room. By default, room registration is enabled. A not_allowed error will be returned if a user tries to register with the room and this feature is disabled.- Specified by:
isRegistrationEnabledin interfaceMUCRoom- Returns:
- true if users are allowed to register with the room.
-
setFmucEnabled
public void setFmucEnabled(boolean fmucEnabled)
Description copied from interface:MUCRoomSets if this room accepts FMUC joins. By default, FMUC functionality is not enabled. When joining nodes are attempting a join, a rejection will be returned when this feature is disabled.- Specified by:
setFmucEnabledin interfaceMUCRoom
-
isFmucEnabled
public boolean isFmucEnabled()
Description copied from interface:MUCRoomReturns true if this room accepts FMUC joins. By default, FMUC functionality is not enabled. When joining nodes are attempting a join, a rejection will be returned when this feature is disabled.- Specified by:
isFmucEnabledin interfaceMUCRoom
-
getMaxUsers
public int getMaxUsers()
Description copied from interface:MUCRoomReturns the maximum number of occupants that can be simultaneously in the room. If the number is zero then there is no limit.- Specified by:
getMaxUsersin interfaceMUCRoom- Returns:
- the maximum number of occupants that can be simultaneously in the room. Zero means unlimited number of occupants.
-
setMaxUsers
public void setMaxUsers(int maxUsers)
Description copied from interface:MUCRoomSets the maximum number of occupants that can be simultaneously in the room. If the number is zero then there is no limit.- Specified by:
setMaxUsersin interfaceMUCRoom- Parameters:
maxUsers- the maximum number of occupants that can be simultaneously in the room. Zero means unlimited number of occupants.
-
isModerated
public boolean isModerated()
Description copied from interface:MUCRoomReturns if the room in which only those with "voice" may send messages to all occupants.- Specified by:
isModeratedin interfaceMUCRoom- Returns:
- if the room in which only those with "voice" may send messages to all occupants.
-
setModerated
public void setModerated(boolean moderated)
Description copied from interface:MUCRoomSets if the room in which only those with "voice" may send messages to all occupants.- Specified by:
setModeratedin interfaceMUCRoom- Parameters:
moderated- if the room in which only those with "voice" may send messages to all occupants.
-
getPassword
public String getPassword()
Description copied from interface:MUCRoomReturns the password that the user must provide to enter the room.- Specified by:
getPasswordin interfaceMUCRoom- Returns:
- the password that the user must provide to enter the room.
-
setPassword
public void setPassword(String password)
Description copied from interface:MUCRoomSets the password that the user must provide to enter the room.- Specified by:
setPasswordin interfaceMUCRoom- Parameters:
password- the password that the user must provide to enter the room.
-
isPasswordProtected
public boolean isPasswordProtected()
Description copied from interface:MUCRoomReturns true if a user cannot enter without first providing the correct password.- Specified by:
isPasswordProtectedin interfaceMUCRoom- Returns:
- true if a user cannot enter without first providing the correct password.
-
isPersistent
public boolean isPersistent()
Description copied from interface:MUCRoomReturns true if the room is not destroyed if the last occupant exits. Persistent rooms are saved to the database to make their configurations persistent together with the affiliation of the users.- Specified by:
isPersistentin interfaceMUCRoom- Returns:
- true if the room is not destroyed if the last occupant exits.
-
wasSavedToDB
public boolean wasSavedToDB()
Description copied from interface:MUCRoomReturns true if the room has already been made persistent. If the room is temporary the answer will always be false.- Specified by:
wasSavedToDBin interfaceMUCRoom- Returns:
- true if the room has already been made persistent.
-
setSavedToDB
public void setSavedToDB(boolean saved)
Description copied from interface:MUCRoomSets if the room has already been made persistent.- Specified by:
setSavedToDBin interfaceMUCRoom- Parameters:
saved- boolean that indicates if the room was saved to the database.
-
setPersistent
public void setPersistent(boolean persistent)
Description copied from interface:MUCRoomSets if the room is not destroyed if the last occupant exits. Persistent rooms are saved to the database to make their configurations persistent together with the affiliation of the users.- Specified by:
setPersistentin interfaceMUCRoom- Parameters:
persistent- if the room is not destroyed if the last occupant exits.
-
isPublicRoom
public boolean isPublicRoom()
Description copied from interface:MUCRoomReturns true if the room is searchable and visible through service discovery.- Specified by:
isPublicRoomin interfaceMUCRoom- Returns:
- true if the room is searchable and visible through service discovery.
-
setPublicRoom
public void setPublicRoom(boolean publicRoom)
Description copied from interface:MUCRoomSets if the room is searchable and visible through service discovery.- Specified by:
setPublicRoomin interfaceMUCRoom- Parameters:
publicRoom- if the room is searchable and visible through service discovery.
-
getRolesToBroadcastPresence
public List<String> getRolesToBroadcastPresence()
Description copied from interface:MUCRoomReturns the list of roles of which presence will be broadcasted to the rest of the occupants. This feature is useful for implementing "invisible" occupants.- Specified by:
getRolesToBroadcastPresencein interfaceMUCRoom- Returns:
- the list of roles of which presence will be broadcasted to the rest of the occupants.
-
setRolesToBroadcastPresence
public void setRolesToBroadcastPresence(List<String> rolesToBroadcastPresence)
Description copied from interface:MUCRoomSets the list of roles of which presence will be broadcasted to the rest of the occupants. This feature is useful for implementing "invisible" occupants.- Specified by:
setRolesToBroadcastPresencein interfaceMUCRoom- Parameters:
rolesToBroadcastPresence- the list of roles of which presence will be broadcasted to the rest of the occupants.
-
canBroadcastPresence
public boolean canBroadcastPresence(String roleToBroadcast)
Description copied from interface:MUCRoomReturns true if the presences of the requested role will be broadcasted.- Specified by:
canBroadcastPresencein interfaceMUCRoom- Parameters:
roleToBroadcast- the role to check if its presences will be broadcasted.- Returns:
- true if the presences of the requested role will be broadcasted.
-
lock
public void lock(MUCRole senderRole) throws ForbiddenException
Description copied from interface:MUCRoomLocks the room so that users cannot join the room. Only the owner of the room can lock/unlock the room.- Specified by:
lockin interfaceMUCRoom- Parameters:
senderRole- the role of the occupant that locked the room.- Throws:
ForbiddenException- If the user is not an owner of the room.
-
unlock
public void unlock(MUCRole senderRole) throws ForbiddenException
Description copied from interface:MUCRoomUnlocks the room so that users can join the room. The room is locked when created and only the owner of the room can unlock it by sending the configuration form to the Multi-User Chat service.- Specified by:
unlockin interfaceMUCRoom- Parameters:
senderRole- the role of the occupant that unlocked the room.- Throws:
ForbiddenException- If the user is not an owner of the room.
-
addAdmins
public List<org.xmpp.packet.Presence> addAdmins(List<org.xmpp.packet.JID> newAdmins, MUCRole senderRole) throws ForbiddenException, ConflictException
Description copied from interface:MUCRoomAdds a list of users to the list of admins.- Specified by:
addAdminsin interfaceMUCRoom- Parameters:
newAdmins- the list of bare JIDs of the users to add to the list of existing admins (cannot benull).senderRole- the role of the user that is trying to modify the admins list (cannot benull).- Returns:
- the list of updated presences of all the clients resources that the clients used to join the room.
- Throws:
ForbiddenException- If the user is not allowed to modify the admin list.ConflictException- If the room was going to lose all its owners.
-
addOwners
public List<org.xmpp.packet.Presence> addOwners(List<org.xmpp.packet.JID> newOwners, MUCRole senderRole) throws ForbiddenException
Description copied from interface:MUCRoomAdds a list of users to the list of owners.- Specified by:
addOwnersin interfaceMUCRoom- Parameters:
newOwners- the list of bare JIDs of the users to add to the list of existing owners (cannot benull).senderRole- the role of the user that is trying to modify the owners list (cannot benull).- Returns:
- the list of updated presences of all the clients resources that the clients used to join the room.
- Throws:
ForbiddenException- If the user is not allowed to modify the owner list.
-
saveToDB
public void saveToDB()
Description copied from interface:MUCRoomSaves the room configuration to the DB. After the room has been saved to the DB it will become persistent.
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
updateConfiguration
public void updateConfiguration(LocalMUCRoom otherRoom)
-
getUID
public String getUID()
- Specified by:
getUIDin interfaceorg.xmpp.resultsetmanagement.Result
-
groupDeleting
public void groupDeleting(Group group, Map params)
Description copied from interface:GroupEventListenerA group is being deleted.- Specified by:
groupDeletingin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
groupModified
public void groupModified(Group group, Map params)
Description copied from interface:GroupEventListenerA group's name, description, or an extended property was changed.- Specified by:
groupModifiedin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
memberAdded
public void memberAdded(Group group, Map params)
Description copied from interface:GroupEventListenerA member was added to a group.- Specified by:
memberAddedin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
memberRemoved
public void memberRemoved(Group group, Map params)
Description copied from interface:GroupEventListenerA member was removed from a group.- Specified by:
memberRemovedin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
adminAdded
public void adminAdded(Group group, Map params)
Description copied from interface:GroupEventListenerAn administrator was added to a group.- Specified by:
adminAddedin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
adminRemoved
public void adminRemoved(Group group, Map params)
Description copied from interface:GroupEventListenerAn administrator was removed from a group.- Specified by:
adminRemovedin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
groupCreated
public void groupCreated(Group group, Map params)
Description copied from interface:GroupEventListenerA group was created.- Specified by:
groupCreatedin interfaceGroupEventListener- Parameters:
group- the group.params- event parameters.
-
-