Package org.jivesoftware.openfire.muc
Class MUCRoomHistory
- java.lang.Object
-
- org.jivesoftware.openfire.muc.MUCRoomHistory
-
- All Implemented Interfaces:
Externalizable
,Serializable
public final class MUCRoomHistory extends Object implements Externalizable
Represent the data model for oneMUCRoom
history. Including chat transcript, joining and leaving times.- Author:
- Gaston Dombiak, Guus der Kinderen, guus@goodbytes.nl
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description MUCRoomHistory()
This constructor is provided to comply with the Externalizable interface contract.MUCRoomHistory(MUCRoom room, HistoryStrategy historyStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addMessage(org.xmpp.packet.Message packet)
void
addOldMessages(List<org.xmpp.packet.Message> oldMessages)
Add message(s) to the history of the chat room.void
addOldMessages(org.xmpp.packet.Message... oldMessages)
Add message(s) to the history of the chat room.boolean
equals(Object o)
org.xmpp.packet.Message
getChangedSubject()
Returns the message within the history of the room that has changed the room's subject.int
getMaxMessages()
Returns the maximum number of messages that is kept in history for this room, or -1 when there is no such limit.Iterator<org.xmpp.packet.Message>
getMessageHistory()
ListIterator<org.xmpp.packet.Message>
getReverseMessageHistory()
Obtain the current history to be iterated in reverse mode.protected MUCRoom
getRoom()
Returns the room for which this instance is operating.boolean
hasChangedSubject()
Returns true if there is a message within the history of the room that has changed the room's subject.int
hashCode()
boolean
isSubjectChangeRequest(org.xmpp.packet.Message message)
Returns true if the given message qualifies as a subject change request, per XEP-0045.org.xmpp.packet.Message
parseHistoricMessage(String senderJID, String nickname, Date sentDate, String subject, String body, String stanza)
Creates a new message, representing a message that was exchanged in a chat room in the past, based on the provided information.void
purge()
Removes all history that is maintained for this instance.void
readExternal(ObjectInput in)
void
writeExternal(ObjectOutput out)
-
-
-
Constructor Detail
-
MUCRoomHistory
public MUCRoomHistory()
This constructor is provided to comply with the Externalizable interface contract. It should not be used directly.
-
MUCRoomHistory
public MUCRoomHistory(MUCRoom room, HistoryStrategy historyStrategy)
-
-
Method Detail
-
addMessage
public void addMessage(org.xmpp.packet.Message packet)
-
getMessageHistory
public Iterator<org.xmpp.packet.Message> getMessageHistory()
-
getReverseMessageHistory
public ListIterator<org.xmpp.packet.Message> getReverseMessageHistory()
Obtain the current history to be iterated in reverse mode. This means that the returned list iterator will be positioned at the end of the history so senders of this message must traverse the list in reverse mode.- Returns:
- A list iterator of Message objects positioned at the end of the list.
-
addOldMessages
public void addOldMessages(@Nonnull List<org.xmpp.packet.Message> oldMessages)
Add message(s) to the history of the chat room. The messages will likely come from the database when loading the room history from the database.- Parameters:
oldMessages
- The messages to add to the history
-
addOldMessages
public void addOldMessages(@Nonnull org.xmpp.packet.Message... oldMessages)
Add message(s) to the history of the chat room. The messages will likely come from the database when loading the room history from the database.- Parameters:
oldMessages
- The messages to add to the history
-
parseHistoricMessage
public org.xmpp.packet.Message parseHistoricMessage(String senderJID, String nickname, Date sentDate, String subject, String body, String stanza)
Creates a new message, representing a message that was exchanged in a chat room in the past, based on the provided information. This information will likely come from the database when loading the room history from the database.- Parameters:
senderJID
- the sender's JID of the message.nickname
- the sender's nickname of the message.sentDate
- the date when the message was sent to the room.subject
- the subject included in the message.body
- the body of the message.stanza
- the stanza to add- Returns:
- A historic chat message.
-
purge
public void purge()
Removes all history that is maintained for this instance.
-
getRoom
protected MUCRoom getRoom()
Returns the room for which this instance is operating.- Returns:
- A room.
-
hasChangedSubject
public boolean hasChangedSubject()
Returns true if there is a message within the history of the room that has changed the room's subject.- Returns:
- true if there is a message within the history of the room that has changed the room's subject.
-
getChangedSubject
@Nullable public org.xmpp.packet.Message getChangedSubject()
Returns the message within the history of the room that has changed the room's subject.- Returns:
- the latest room subject change or null if none exists yet.
-
isSubjectChangeRequest
public boolean isSubjectChangeRequest(org.xmpp.packet.Message message)
Returns true if the given message qualifies as a subject change request, per XEP-0045.- Parameters:
message
- the message to check- Returns:
- true if the given packet is a subject change request
-
getMaxMessages
public int getMaxMessages()
Returns the maximum number of messages that is kept in history for this room, or -1 when there is no such limit.- Returns:
- The maximum amount of historic messages to keep for this room, or -1.
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
-