Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.8.2 Javadoc
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jivesoftware.openfire.muc
Interface MUCRoom

All Superinterfaces:
  Externalizable, org.xmpp.resultsetmanagement.Result, Serializable

All Known Implementing Classes:
  LocalMUCRoom

    public interface MUCRoom

extends Externalizable, org.xmpp.resultsetmanagement.Result

A chat room on the chat server manages its users, and enforces it's own security rules.

Author:
  Gaston Dombiak

Method Summary
`List<org.xmpp.packet.Presence>` | `addAdmin(org.xmpp.packet.JID jid, MUCRole senderRole)` 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.
`void` | `addFirstOwner(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 senderRole)` Adds a new user to the list of members.
`org.xmpp.packet.Presence` | `addModerator(org.xmpp.packet.JID fullJID, 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 senderRole)` 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.Presence` | `addParticipant(org.xmpp.packet.JID fullJID, String reason, MUCRole senderRole)` Changes the role of the user within the room to participant.
`org.xmpp.packet.Presence` | `addVisitor(org.xmpp.packet.JID jid, MUCRole senderRole)` Changes the role of the user within the room to visitor.
`boolean` | `canAnyoneDiscoverJID()` Returns true if every presence packet will include the JID of every occupant.
`boolean` | `canBroadcastPresence(String roleToBroadcast)` Returns true if the presences of the requested role will be broadcasted.
`boolean` | `canChangeNickname()` Returns true if room occupants are allowed to change their nicknames in the room.
`boolean` | `canOccupantsChangeSubject()` Returns true if participants are allowed to change the room's subject.
`boolean` | `canOccupantsInvite()` Returns true if occupants can invite other users to the room.
`void` | `changeSubject(org.xmpp.packet.Message packet, MUCRole role)` Changes the room's subject if the occupant has enough permissions.
`org.xmpp.packet.Presence` | `createPresence(org.xmpp.packet.Presence.Type type)` Create a new presence in this room for the given role.
`void` | `destroyRoom(org.xmpp.packet.JID alternateJID, String reason)` Destroys the room.
`Collection<org.xmpp.packet.JID>` | `getAdmins()` Returns a collection with the current list of admins.
`MUCRole.Affiliation` | `getAffiliation(org.xmpp.packet.JID bareJID)` Returns the affiliation state of the user in the room.
`long` | `getChatLength()` Returns the total length of the chat session.
`Date` | `getCreationDate()` Returns the date when the room was created.
`String` | `getDescription()` Returns a description set by the room's owners about the room.
`Date` | `getEmptyDate()` Returns the date when the last occupant left the room.
`long` | `getID()` Obtain a unique numerical id for this room.
`IQAdminHandler` | `getIQAdminHandler()`
`IQOwnerHandler` | `getIQOwnerHandler()`
`org.xmpp.packet.JID` | `getJID()` Get the full JID of this room.
`int` | `getMaxUsers()` 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.
`Date` | `getModificationDate()` Returns the last date when the room's configuration was modified.
`MultiUserChatService` | `getMUCService()` Get the multi user chat service the room is attached to.
`String` | `getName()` Get the name of this room.
`String` | `getNaturalLanguageName()` Returns the natural language name of the room.
`MUCRole` | `getOccupant(String nickname)` Obtain the role of a given user by nickname.
`MUCRole` | `getOccupantByFullJID(org.xmpp.packet.JID jid)` Returns the role of a given user in the room by his full JID or `null` if 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.
`int` | `getOccupantsCount()` 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.
`String` | `getPassword()` Returns the password that the user must provide to enter the room.
`String` | `getReservedNickname(org.xmpp.packet.JID jid)` Returns the reserved room nickname for the bare JID or null if none.
`MUCRole` | `getRole()` Obtain the role of the chat server (mainly for addressing messages and presence).
`List<String>` | `getRolesToBroadcastPresence()` Returns the list of roles of which presence will be broadcasted to the rest of the occupants.
`MUCRoomHistory` | `getRoomHistory()` Returns the history of the room which includes chat transcripts.
`String` | `getSubject()` Returns the last subject that some occupant set to the room.
`boolean` | `hasOccupant(String nickname)` Determine if a given nickname is taken.
`boolean` | `isLocked()` Returns true if the room is locked.
`boolean` | `isLogEnabled()` Returns true if the room's conversation is being logged.
`boolean` | `isLoginRestrictedToNickname()` Returns true if registered users can only join the room using their registered nickname.
`boolean` | `isManuallyLocked()` Returns true if the room is locked and it was locked by a room owner after the room was initially configured.
`boolean` | `isMembersOnly()` Returns true if the room requires an invitation to enter.
`boolean` | `isModerated()` Returns if the room in which only those with "voice" may send messages to all occupants.
`boolean` | `isPasswordProtected()` Returns true if a user cannot enter without first providing the correct password.
`boolean` | `isPersistent()` Returns true if the room is not destroyed if the last occupant exits.
`boolean` | `isPublicRoom()` Returns true if the room is searchable and visible through service discovery.
`boolean` | `isRegistrationEnabled()` Returns true if users are allowed to register with the room.
`LocalMUCRole` | `joinRoom(String nickname, String password, HistoryRequest historyRequest, LocalMUCUser user, org.xmpp.packet.Presence presence)` Joins the room using the given nickname.
`org.xmpp.packet.Presence` | `kickOccupant(org.xmpp.packet.JID fullJID, org.xmpp.packet.JID actorJID, String reason)` Kicks a user from the room.
`void` | `leaveRoom(MUCRole leaveRole)` Remove a member from the chat room.
`void` | `lock(MUCRole senderRole)` Locks the room so that users cannot join the room.
`void` | `nicknameChanged(MUCRole occupantRole, org.xmpp.packet.Presence newPresence, String oldNick, String newNick)` An event callback fired whenever an occupant changes his nickname within the chatroom.
`void` | `presenceUpdated(MUCRole occupantRole, org.xmpp.packet.Presence newPresence)` An event callback fired whenever an occupant updated his presence in the chatroom.
`void` | `saveToDB()` Saves the room configuration to the DB.
`void` | `send(org.xmpp.packet.Packet packet)` Sends a packet to the user.
`void` | `sendInvitation(org.xmpp.packet.JID to, String reason, MUCRole role, List<org.dom4j.Element> extensions)` Sends an invitation to a user.
`void` | `sendInvitationRejection(org.xmpp.packet.JID to, String reason, org.xmpp.packet.JID from)` Sends the rejection to the inviter.
`void` | `sendPrivatePacket(org.xmpp.packet.Packet packet, MUCRole senderRole)` Sends a private packet to a selected occupant.
`void` | `sendPublicMessage(org.xmpp.packet.Message message, MUCRole senderRole)` Sends a message to the all the occupants.
`void` | `serverBroadcast(String msg)` Broadcast a given message to all members of this chat room.
`void` | `setCanAnyoneDiscoverJID(boolean canAnyoneDiscoverJID)` Sets if every presence packet will include the JID of every occupant.
`void` | `setCanOccupantsChangeSubject(boolean canOccupantsChangeSubject)` Sets if participants are allowed to change the room's subject.
`void` | `setCanOccupantsInvite(boolean canOccupantsInvite)` Sets if occupants can invite other users to the room.
`void` | `setChangeNickname(boolean canChange)` Sets if room occupants are allowed to change their nicknames in the room.
`void` | `setCreationDate(Date creationDate)` Sets the date when the room was created.
`void` | `setDescription(String description)` Sets a description set by the room's owners about the room.
`void` | `setEmptyDate(Date emptyDate)` Sets the date when the last occupant left the room.
`void` | `setID(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.
`void` | `setLogEnabled(boolean logEnabled)` Sets if the room's conversation is being logged.
`void` | `setLoginRestrictedToNickname(boolean restricted)` Sets if registered users can only join the room using their registered nickname.
`void` | `setMaxUsers(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.
`void` | `setModerated(boolean moderated)` Sets if the room in which only those with "voice" may send messages to all occupants.
`void` | `setModificationDate(Date modificationDate)` Sets the last date when the room's configuration was modified.
`void` | `setMUCService(MultiUserChatService service)` Sets the multi user chat service the room is attached to.
`void` | `setNaturalLanguageName(String naturalLanguageName)` Sets the natural language name of the room.
`void` | `setPassword(String password)` Sets the password that the user must provide to enter the room.
`void` | `setPersistent(boolean persistent)` Sets if the room is not destroyed if the last occupant exits.
`void` | `setPublicRoom(boolean publicRoom)` Sets if the room is searchable and visible through service discovery.
`void` | `setRegistrationEnabled(boolean registrationEnabled)` Sets if users are allowed to register with the room.
`void` | `setRolesToBroadcastPresence(List<String> rolesToBroadcastPresence)` Sets the list of roles of which presence will be broadcasted to the rest of the occupants.
`void` | `setSavedToDB(boolean saved)` Sets if the room has already been made persistent.
`void` | `setSubject(String subject)` Sets the last subject that some occupant set to the room.
`void` | `unlock(MUCRole senderRole)` Unlocks the room so that users can join the room.
`boolean` | `wasSavedToDB()` Returns true if the room has already been made persistent.

Methods inherited from interface java.io.Externalizable
`readExternal, writeExternal`

Methods inherited from interface org.xmpp.resultsetmanagement.Result
`getUID`

Method Detail

### getName

    String getName()

  Get the name of this room.

  Returns:
    The name for this room

### getJID

    org.xmpp.packet.JID getJID()

  Get the full JID of this room.

  Returns:
    the JID for this room.

### getID

    long getID()

  Obtain 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.

  Returns:
    The unique id for this room or -1 if the room is temporary and is not logging the conversation.

### setID

    void setID(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.

  Parameters:
    `roomID` - the saved ID of the room in the DB or a new one if the room is being saved to the DB.

### getMUCService

    MultiUserChatService getMUCService()

  Get the multi user chat service the room is attached to.

  Returns:
    the MultiUserChatService instance that the room is attached to.

### setMUCService

    void setMUCService(MultiUserChatService service)

  Sets the multi user chat service the room is attached to.

  Parameters:
    `service` - The MultiUserChatService that the room is attached to (cannot be `null`).

### getCreationDate

    Date getCreationDate()

  Returns the date when the room was created.

  Returns:
    the date when the room was created.

### setCreationDate

    void setCreationDate(Date creationDate)

  Sets the date when the room was created.

  Parameters:
    `creationDate` - the date when the room was created (cannot be `null`).

### getModificationDate

    Date getModificationDate()

  Returns 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.

  Returns:
    the last date when the room's configuration was modified.

### setModificationDate

    void setModificationDate(Date modificationDate)

  Sets 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.

  Parameters:
    `modificationDate` - the last date when the room's configuration was modified (cannot be `null`).

### setEmptyDate

    void setEmptyDate(Date emptyDate)

  Sets the date when the last occupant left the room. A null value means that there are occupants in the room at the moment.

  Parameters:
    `emptyDate` - the date when the last occupant left the room or null if there are occupants in the room (can be `null`).

### getEmptyDate

    Date getEmptyDate()

  Returns the date when the last occupant left the room. A null value means that there are occupants in the room at the moment.

  Returns:
    the date when the last occupant left the room or null if there are occupants in the room at the moment.

### getRole

    MUCRole getRole()

  Obtain the role of the chat server (mainly for addressing messages and presence).

  Returns:
    The role for the chat room itself

### getOccupant

    MUCRole getOccupant(String nickname)
                        throws UserNotFoundException

  Obtain the role of a given user by nickname.

  Parameters:
    `nickname` - The nickname of the user you'd like to obtain (cannot be `null`)
  Returns:
    The user's role in the room
  Throws:
    `UserNotFoundException` - If there is no user with the given nickname

### getOccupantsByBareJID

    List<MUCRole> getOccupantsByBareJID(org.xmpp.packet.JID jid)
                                        throws UserNotFoundException

  Obtain 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.

  Parameters:
    `jid` - The bare jid of the user you'd like to obtain (cannot be `null`).
  Returns:
    The user's roles in the room
  Throws:
    `UserNotFoundException` - If there is no user with the given nickname

### getOccupantByFullJID

    MUCRole getOccupantByFullJID(org.xmpp.packet.JID jid)

  Returns the role of a given user in the room by his full JID or `null` if no role was found for the specified user.

  Parameters:
    `jid` - The full jid of the user you'd like to obtain (cannot be `null`).
  Returns:
    The user's role in the room or null if not found.

### getOccupants

    Collection<MUCRole> getOccupants()

  Obtain the roles of all users in the chatroom.

  Returns:
    a collection with all users in the chatroom

### getOccupantsCount

    int getOccupantsCount()

  Returns the number of occupants in the chatroom at the moment.

  Returns:
    int the number of occupants in the chatroom at the moment.

### hasOccupant

    boolean hasOccupant(String nickname)

  Determine if a given nickname is taken.

  Parameters:
    `nickname` - The nickname of the user you'd like to obtain (cannot be `null`).
  Returns:
    True if a nickname is taken

### getReservedNickname

    String getReservedNickname(org.xmpp.packet.JID jid)

  Returns the reserved room nickname for the bare JID or null if none.

  Parameters:
    `jid` - The bare jid of the user of which you'd like to obtain his reserved nickname (cannot be `null`).
  Returns:
    the reserved room nickname for the bare JID or null if none.

### getAffiliation

    MUCRole.Affiliation getAffiliation(org.xmpp.packet.JID bareJID)

  Returns 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.

  Parameters:
    `bareJID` - The bare jid of the user of which you'd like to obtain his affiliation (cannot be `null`).
  Returns:
    the affiliation state of the user in the room.

### joinRoom

    LocalMUCRole joinRoom(String nickname,
                          String password,
                          HistoryRequest historyRequest,
                          LocalMUCUser user,
                          org.xmpp.packet.Presence presence)
                          throws UnauthorizedException,
                                 UserAlreadyExistsException,
                                 RoomLockedException,
                                 ForbiddenException,
                                 RegistrationRequiredException,
                                 ConflictException,
                                 ServiceUnavailableException,
                                 NotAcceptableException

  Joins the room using the given nickname.

  Parameters:
    `nickname` - The nickname the user wants to use in the chatroom (cannot be `null`).
    `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 be `null`).
    `presence` - The presence sent by the user to join the room (cannot be `null`).
  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.

### leaveRoom

    void leaveRoom(MUCRole leaveRole)

  Remove a member from the chat room.

  Parameters:
    `leaveRole` - room occupant that left the room (cannot be `null`).

### destroyRoom

    void destroyRoom(org.xmpp.packet.JID alternateJID,
                     String reason)

  Destroys 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.

  Parameters:
    `alternateJID` - an optional alternate JID. Commonly used to provide a replacement room. (can be `null`)
    `reason` - an optional reason why the room was destroyed (can be `null`).

### createPresence

    org.xmpp.packet.Presence createPresence(org.xmpp.packet.Presence.Type type)
                                            throws UnauthorizedException

  Create a new presence in this room for the given role.

  Parameters:
    `type` - Type of presence to create (cannot be `null`).
  Returns:
    The new presence
  Throws:
    `UnauthorizedException` - If the user doesn't have permission to leave the room

### serverBroadcast

    void serverBroadcast(String msg)

  Broadcast a given message to all members of this chat room. The sender is always set to be the chatroom.

  Parameters:
    `msg` - The message to broadcast (cannot be `null`)

### getChatLength

    long getChatLength()

  Returns the total length of the chat session.

  Returns:
    length of chat session in milliseconds.

### addFirstOwner

    void addFirstOwner(org.xmpp.packet.JID bareJID)

  Adds 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 through `addOwner(JID jid,MUCRole)`.

  Parameters:
    `bareJID` - The bare JID of the user to add as owner (cannot be `null`).

### addOwner

    List<org.xmpp.packet.Presence> addOwner(org.xmpp.packet.JID jid,
                                            MUCRole senderRole)
                                            throws ForbiddenException

  Adds a new user to the list of owners.

  Parameters:
    `jid` - The JID of the user to add as owner (cannot be `null`).
    `senderRole` - the role of the user that is trying to modify the owners list (cannot be `null`).
  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.

### addOwners

    List<org.xmpp.packet.Presence> addOwners(List<org.xmpp.packet.JID> newOwners,
                                             MUCRole senderRole)
                                             throws ForbiddenException

  Adds a list of users to the list of owners.

  Parameters:
    `newOwners` - the list of bare JIDs of the users to add to the list of existing owners (cannot be `null`).
    `senderRole` - the role of the user that is trying to modify the owners list (cannot be `null`).
  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.

### addAdmins

    List<org.xmpp.packet.Presence> addAdmins(List<org.xmpp.packet.JID> newAdmins,
                                             MUCRole senderRole)
                                             throws ForbiddenException,
                                                    ConflictException

  Adds a list of users to the list of admins.

  Parameters:
    `newAdmins` - the list of bare JIDs of the users to add to the list of existing admins (cannot be `null`).
    `senderRole` - the role of the user that is trying to modify the admins list (cannot be `null`).
  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.

### addAdmin

    List<org.xmpp.packet.Presence> addAdmin(org.xmpp.packet.JID jid,
                                            MUCRole senderRole)
                                            throws ForbiddenException,
                                                   ConflictException

  Adds a new user to the list of admins.

  Parameters:
    `jid` - The JID of the user to add as admin (cannot be `null`).
    `senderRole` - The role of the user that is trying to modify the admins list (cannot be `null`).
  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

    List<org.xmpp.packet.Presence> addMember(org.xmpp.packet.JID jid,
                                             String nickname,
                                             MUCRole senderRole)
                                             throws ForbiddenException,
                                                    ConflictException

  Adds a new user to the list of members.

  Parameters:
    `jid` - The JID of the user to add as a member (cannot be `null`).
    `nickname` - The reserved nickname of the member for the room or null if none.
    `senderRole` - the role of the user that is trying to modify the members list (cannot be `null`).
  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

    List<org.xmpp.packet.Presence> addOutcast(org.xmpp.packet.JID jid,
                                              String reason,
                                              MUCRole senderRole)
                                              throws NotAllowedException,
                                                     ForbiddenException,
                                                     ConflictException

  Adds a new user to the list of outcast users.

  Parameters:
    `jid` - The JID of the user to add as an outcast (cannot be `null`).
    `reason` - an optional reason why the user was banned (can be `null`).
    `senderRole` - The role of the user that initiated the ban (cannot be `null`).
  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

    List<org.xmpp.packet.Presence> addNone(org.xmpp.packet.JID jid,
                                           MUCRole senderRole)
                                           throws ForbiddenException,
                                                  ConflictException

  Removes the user from all the other affiliation list thus giving the user a NONE affiliation.

  Parameters:
    `jid` - The JID of the user to keep with a NONE affiliation (cannot be `null`).
    `senderRole` - The role of the user that set the affiliation to none (cannot be `null`).
  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.

### addModerator

    org.xmpp.packet.Presence addModerator(org.xmpp.packet.JID fullJID,
                                          MUCRole senderRole)
                                          throws ForbiddenException

  Changes 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.

  Parameters:
    `fullJID` - The full JID of the occupant to give moderator privileges (cannot be `null`).
    `senderRole` - The role of the user that is granting moderator privileges to an occupant (cannot be `null`).
  Returns:
    the updated presence of the occupant or `null` if the JID does not belong to an existing occupant.
  Throws:
    `ForbiddenException` - If the user is not allowed to grant moderator privileges.

### addParticipant

    org.xmpp.packet.Presence addParticipant(org.xmpp.packet.JID fullJID,
                                            String reason,
                                            MUCRole senderRole)
                                            throws NotAllowedException,
                                                   ForbiddenException

  Changes 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.

  Parameters:
    `fullJID` - The full JID of the occupant to give participant privileges (cannot be `null`).
    `reason` - The reason why participant privileges were gave to the user or `null` if none.
    `senderRole` - The role of the user that is granting participant privileges to an occupant (cannot be `null`).
  Returns:
    the updated presence of the occupant or `null` if 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

    org.xmpp.packet.Presence addVisitor(org.xmpp.packet.JID jid,
                                        MUCRole senderRole)
                                        throws NotAllowedException,
                                               ForbiddenException

  Changes 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.

  Parameters:
    `jid` - the full JID of the occupant to change to visitor (cannot be `null`).
    `senderRole` - the role of the user that is changing the role to visitor (cannot be `null`).
  Returns:
    the updated presence of the occupant or `null` if 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.

### isLocked

    boolean isLocked()

  Returns 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.

  Returns:
    true if the room is locked.

### isManuallyLocked

    boolean isManuallyLocked()

  Returns true if the room is locked and it was locked by a room owner after the room was initially configured.

  Returns:
    true if the room is locked and it was locked by a room owner after the room was initially configured.

### presenceUpdated

    void presenceUpdated(MUCRole occupantRole,
                         org.xmpp.packet.Presence newPresence)

  An event callback fired whenever an occupant updated his presence in the chatroom.

  Parameters:
    `occupantRole` - occupant that changed his presence in the room (cannot be `null`).
    `newPresence` - presence sent by the occupant (cannot be `null`).

### nicknameChanged

    void nicknameChanged(MUCRole occupantRole,
                         org.xmpp.packet.Presence newPresence,
                         String oldNick,
                         String newNick)

  An event callback fired whenever an occupant changes his nickname within the chatroom.

  Parameters:
    `occupantRole` - occupant that changed his nickname in the room (cannot be `null`).
    `newPresence` - presence sent by the occupant with the new nickname (cannot be `null`).
    `oldNick` - old nickname within the room (cannot be `null`).
    `newNick` - new nickname within the room (cannot be `null`).

### changeSubject

    void changeSubject(org.xmpp.packet.Message packet,
                       MUCRole role)
                       throws ForbiddenException

  Changes 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.

  Parameters:
    `packet` - the sent packet to change the room's subject (cannot be `null`).
    `role` - the role of the user that is trying to change the subject (cannot be `null`).
  Throws:
    `ForbiddenException` - If the user is not allowed to change the subject.

### getSubject

    String getSubject()

  Returns the last subject that some occupant set to the room.

  Returns:
    the last subject that some occupant set to the room.

### setSubject

    void setSubject(String subject)

  Sets the last subject that some occupant set to the room. This message will only be used when loading a room from the database.

  Parameters:
    `subject` - the last known subject of the room (cannot be `null`).

### sendPublicMessage

    void sendPublicMessage(org.xmpp.packet.Message message,
                           MUCRole senderRole)
                           throws ForbiddenException

  Sends 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.

  Parameters:
    `message` - The message to send (cannot be `null`).
    `senderRole` - the role of the user that is trying to send a public message (cannot be `null`).
  Throws:
    `ForbiddenException` - If the user is not allowed to send a public message (i.e. does not have voice in the room).

### sendPrivatePacket

    void sendPrivatePacket(org.xmpp.packet.Packet packet,
                           MUCRole senderRole)
                           throws NotFoundException

  Sends 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.

  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.

### kickOccupant

    org.xmpp.packet.Presence kickOccupant(org.xmpp.packet.JID fullJID,
                                          org.xmpp.packet.JID actorJID,
                                          String reason)
                                          throws NotAllowedException

  Kicks a user from the room. If the user was in the room, the returned updated presence will be sent to the remaining occupants.

  Parameters:
    `fullJID` - The full JID of the kicked user (cannot be `null`).
    `actorJID` - The JID of the actor that initiated the kick (cannot be `null`).
    `reason` - An optional reason why the user was kicked (can be `null`).
  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.

### getIQOwnerHandler

    IQOwnerHandler getIQOwnerHandler()

### getIQAdminHandler

    IQAdminHandler getIQAdminHandler()

### getRoomHistory

    MUCRoomHistory getRoomHistory()

  Returns the history of the room which includes chat transcripts.

  Returns:
    the history of the room which includes chat transcripts.

### getOwners

    Collection<org.xmpp.packet.JID> getOwners()

  Returns a collection with the current list of owners. The collection contains the bareJID of the users with owner affiliation.

  Returns:
    a collection with the current list of owners.

### getAdmins

    Collection<org.xmpp.packet.JID> getAdmins()

  Returns a collection with the current list of admins. The collection contains the bareJID of the users with admin affiliation.

  Returns:
    a collection with the current list of admins.

### getMembers

    Collection<org.xmpp.packet.JID> getMembers()

  Returns 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.

  Returns:
    a collection with the current list of members.

### getOutcasts

    Collection<org.xmpp.packet.JID> getOutcasts()

  Returns 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.

  Returns:
    a collection with the current list of outcast users.

### getModerators

    Collection<MUCRole> getModerators()

  Returns a collection with the current list of room moderators. The collection contains the MUCRole of the occupants with moderator role.

  Returns:
    a collection with the current list of moderators.

### getParticipants

    Collection<MUCRole> getParticipants()

  Returns a collection with the current list of room participants. The collection contains the MUCRole of the occupants with participant role.

  Returns:
    a collection with the current list of moderators.

### canAnyoneDiscoverJID

    boolean canAnyoneDiscoverJID()

  Returns 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.

  Returns:
    true if every presence packet will include the JID of every occupant.

### setCanAnyoneDiscoverJID

    void setCanAnyoneDiscoverJID(boolean canAnyoneDiscoverJID)

  Sets 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.

  Parameters:
    `canAnyoneDiscoverJID` - boolean that specifies if every presence packet will include the JID of every occupant.

### canOccupantsChangeSubject

    boolean canOccupantsChangeSubject()

  Returns true if participants are allowed to change the room's subject.

  Returns:
    true if participants are allowed to change the room's subject.

### setCanOccupantsChangeSubject

    void setCanOccupantsChangeSubject(boolean canOccupantsChangeSubject)

  Sets if participants are allowed to change the room's subject.

  Parameters:
    `canOccupantsChangeSubject` - boolean that specifies if participants are allowed to change the room's subject.

### canOccupantsInvite

    boolean canOccupantsInvite()

  Returns 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.

  Returns:
    true if occupants can invite other users to the room.

### setCanOccupantsInvite

    void setCanOccupantsInvite(boolean canOccupantsInvite)

  Sets 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.

  Parameters:
    `canOccupantsInvite` - boolean that specified in any occupant can invite other users to the room.

### getNaturalLanguageName

    String getNaturalLanguageName()

  Returns 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.

  Returns:
    the natural language name of the room.

### setNaturalLanguageName

    void setNaturalLanguageName(String naturalLanguageName)

  Sets 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.

  Parameters:
    `naturalLanguageName` - the natural language name of the room.

### getDescription

    String getDescription()

  Returns a description set by the room's owners about the room. This information will be used when discovering extended information about the room.

  Returns:
    a description set by the room's owners about the room.

### setDescription

    void setDescription(String description)

  Sets a description set by the room's owners about the room. This information will be used when discovering extended information about the room.

  Parameters:
    `description` - a description set by the room's owners about the room.

### isMembersOnly

    boolean isMembersOnly()

  Returns true if the room requires an invitation to enter. That is if the room is members-only.

  Returns:
    true if the room requires an invitation to enter.

### setMembersOnly

    List<org.xmpp.packet.Presence> setMembersOnly(boolean membersOnly)

  Sets if the room requires an invitation to enter. That is if the room is members-only.

  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

    boolean isLogEnabled()

  Returns 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.

  Returns:
    true if the room's conversation is being logged.

### setLogEnabled

    void setLogEnabled(boolean logEnabled)

  Sets 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.

  Parameters:
    `logEnabled` - boolean that specified if the room's conversation must be logged.

### isLoginRestrictedToNickname

    boolean isLoginRestrictedToNickname()

  Returns 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.

  Returns:
    true if registered users can only join the room using their registered nickname.

### setLoginRestrictedToNickname

    void setLoginRestrictedToNickname(boolean restricted)

  Sets 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.

  Parameters:
    `restricted` - if registered users can only join the room using their registered nickname.

### canChangeNickname

    boolean canChangeNickname()

  Returns 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.

  Returns:
    true if room occupants are allowed to change their nicknames in the room.

### setChangeNickname

    void setChangeNickname(boolean canChange)

  Sets 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.

  Parameters:
    `canChange` - if room occupants are allowed to change their nicknames in the room.

### isRegistrationEnabled

    boolean isRegistrationEnabled()

  Returns 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.

  Returns:
    true if users are allowed to register with the room.

### setRegistrationEnabled

    void setRegistrationEnabled(boolean registrationEnabled)

  Sets 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.

  Parameters:
    `registrationEnabled` - if users are allowed to register with the room.

### getMaxUsers

    int getMaxUsers()

  Returns the maximum number of occupants that can be simultaneously in the room. If the number is zero then there is no limit.

  Returns:
    the maximum number of occupants that can be simultaneously in the room. Zero means unlimited number of occupants.

### setMaxUsers

    void setMaxUsers(int maxUsers)

  Sets the maximum number of occupants that can be simultaneously in the room. If the number is zero then there is no limit.

  Parameters:
    `maxUsers` - the maximum number of occupants that can be simultaneously in the room. Zero means unlimited number of occupants.

### isModerated

    boolean isModerated()

  Returns if the room in which only those with "voice" may send messages to all occupants.

  Returns:
    if the room in which only those with "voice" may send messages to all occupants.

### setModerated

    void setModerated(boolean moderated)

  Sets if the room in which only those with "voice" may send messages to all occupants.

  Parameters:
    `moderated` - if the room in which only those with "voice" may send messages to all occupants.

### isPasswordProtected

    boolean isPasswordProtected()

  Returns true if a user cannot enter without first providing the correct password.

  Returns:
    true if a user cannot enter without first providing the correct password.

### getPassword

    String getPassword()

  Returns the password that the user must provide to enter the room.

  Returns:
    the password that the user must provide to enter the room.

### setPassword

    void setPassword(String password)

  Sets the password that the user must provide to enter the room.

  Parameters:
    `password` - the password that the user must provide to enter the room.

### isPersistent

    boolean isPersistent()

  Returns 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.

  Returns:
    true if the room is not destroyed if the last occupant exits.

### setPersistent

    void setPersistent(boolean persistent)

  Sets 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.

  Parameters:
    `persistent` - if the room is not destroyed if the last occupant exits.

### wasSavedToDB

    boolean wasSavedToDB()

  Returns true if the room has already been made persistent. If the room is temporary the answer will always be false.

  Returns:
    true if the room has already been made persistent.

### setSavedToDB

    void setSavedToDB(boolean saved)

  Sets if the room has already been made persistent.

  Parameters:
    `saved` - boolean that indicates if the room was saved to the database.

### saveToDB

    void saveToDB()

  Saves the room configuration to the DB. After the room has been saved to the DB it will become persistent.

### isPublicRoom

    boolean isPublicRoom()

  Returns true if the room is searchable and visible through service discovery.

  Returns:
    true if the room is searchable and visible through service discovery.

### setPublicRoom

    void setPublicRoom(boolean publicRoom)

  Sets if the room is searchable and visible through service discovery.

  Parameters:
    `publicRoom` - if the room is searchable and visible through service discovery.

### getRolesToBroadcastPresence

    List<String> getRolesToBroadcastPresence()

  Returns the list of roles of which presence will be broadcasted to the rest of the occupants. This feature is useful for implementing "invisible" occupants.

  Returns:
    the list of roles of which presence will be broadcasted to the rest of the occupants.

### setRolesToBroadcastPresence

    void setRolesToBroadcastPresence(List<String> rolesToBroadcastPresence)

  Sets the list of roles of which presence will be broadcasted to the rest of the occupants. This feature is useful for implementing "invisible" occupants.

  Parameters:
    `rolesToBroadcastPresence` - the list of roles of which presence will be broadcasted to the rest of the occupants.

### canBroadcastPresence

    boolean canBroadcastPresence(String roleToBroadcast)

  Returns true if the presences of the requested role will be broadcasted.

  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

    void lock(MUCRole senderRole)
              throws ForbiddenException

  Locks the room so that users cannot join the room. Only the owner of the room can lock/unlock the room.

  Parameters:
    `senderRole` - the role of the occupant that locked the room.
  Throws:
    `ForbiddenException` - If the user is not an owner of the room.

### unlock

    void unlock(MUCRole senderRole)
                throws ForbiddenException

  Unlocks 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.

  Parameters:
    `senderRole` - the role of the occupant that unlocked the room.
  Throws:
    `ForbiddenException` - If the user is not an owner of the room.

### sendInvitation

    void sendInvitation(org.xmpp.packet.JID to,
                        String reason,
                        MUCRole role,
                        List<org.dom4j.Element> extensions)
                        throws ForbiddenException,
                               CannotBeInvitedException

  Sends 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.

  Parameters:
    `to` - the JID of the user that is being invited.
    `reason` - the reason of the invitation or null if none.
    `role` - 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

    void sendInvitationRejection(org.xmpp.packet.JID to,
                                 String reason,
                                 org.xmpp.packet.JID from)

  Sends 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.

  Parameters:
    `to` - the JID of the user that is originated the invitation.
    `reason` - the reason for the rejection or null if none.
    `from` - the JID of the invitee that is rejecting the invitation.

### send

    void send(org.xmpp.packet.Packet packet)

  Sends a packet to the user.

  Parameters:
    `packet` - The packet to send

Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.8.2 Javadoc
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2008 Jive Software.