Class LocalMUCUser
- java.lang.Object
-
- org.jivesoftware.openfire.muc.spi.LocalMUCUser
-
- All Implemented Interfaces:
ChannelHandler<org.xmpp.packet.Packet>,MUCUser
public class LocalMUCUser extends Object implements MUCUser
Representation of users interacting with the chat service. A user may join serveral rooms hosted by the chat service. That means that we are going to have an instance of this class for the user and several MUCRoles for each joined room.This room occupant is being hosted by this JVM. When the room occupant is hosted by another cluster node then an instance of
RemoteMUCRolewill be used instead.- Author:
- Gaston Dombiak
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRole(String roomName, LocalMUCRole role)Adds the role of the user in a particular room.booleanequals(Object obj)org.xmpp.packet.JIDgetAddress()Obtain the address of the user.longgetLastPacketTime()Get time (in milliseconds from System currentTimeMillis()) since last packet.Collection<LocalMUCRole>getRoles()Get all roles for this user.inthashCode()booleanisJoined()Returns true if the user is currently present in one or more rooms.voidprocess(org.xmpp.packet.IQ packet)voidprocess(org.xmpp.packet.Message packet)This method does all packet routing in the chat server.voidprocess(org.xmpp.packet.Packet packet)Process an XMPP packet.voidprocess(org.xmpp.packet.Presence packet)voidremoveRole(String roomName)Removes the role of the user in a particular room.
-
-
-
Method Detail
-
isJoined
public boolean isJoined()
Returns true if the user is currently present in one or more rooms.- Returns:
- true if the user is currently present in one or more rooms.
-
getRoles
public Collection<LocalMUCRole> getRoles()
Get all roles for this user.- Returns:
- Iterator over all roles for this user
-
addRole
public void addRole(String roomName, LocalMUCRole role)
Adds the role of the user in a particular room.- Parameters:
roomName- The name of the room.role- The new role of the user.
-
removeRole
public void removeRole(String roomName)
Removes the role of the user in a particular room.Note: PREREQUISITE: A lock on this object has already been obtained.
- Parameters:
roomName- The name of the room we're being removed
-
getLastPacketTime
public long getLastPacketTime()
Get time (in milliseconds from System currentTimeMillis()) since last packet.- Returns:
- The time when the last packet was sent from this user
-
getAddress
public org.xmpp.packet.JID getAddress()
Obtain the address of the user. The address is used by services like the core server packet router to determine if a packet should be sent to the handler. Handlers that are working on behalf of the server should use the generic server hostname address (e.g. server.com).- Specified by:
getAddressin interfaceMUCUser- Returns:
- the address of the packet handler.
-
process
public void process(org.xmpp.packet.Packet packet) throws UnauthorizedException, PacketExceptionDescription copied from interface:ChannelHandlerProcess an XMPP packet.- Specified by:
processin interfaceChannelHandler<org.xmpp.packet.Packet>- Parameters:
packet- a packet to process.- Throws:
UnauthorizedException- if not allowed to process the packet.PacketException- thrown if the packet is malformed (results in the sender's session being shutdown).
-
process
public void process(org.xmpp.packet.Message packet)
This method does all packet routing in the chat server. Packet routing is actually very simple:- Discover the room the user is talking to (server packets are dropped)
- If the room is not registered and this is a presence "available" packet, try to join the room
- If the room is registered, and presence "unavailable" leave the room
- Otherwise, rewrite the sender address and send to the room.
- Parameters:
packet- The packet to route.
-
process
public void process(org.xmpp.packet.IQ packet)
-
process
public void process(org.xmpp.packet.Presence packet)
-
-