ClearspaceMUCTranscriptEvent.java 2.86 KB
Newer Older
1 2 3 4 5 6 7 8 9
package org.jivesoftware.openfire.clearspace;

import org.xmpp.packet.JID;

/**
 * A MUC event that is intended to be recorded in a transcript for a group chat room in Clearspace.
 *
 * @author Armando Jagucki
 */
10
public class ClearspaceMUCTranscriptEvent {
11 12
    public Type type;
    public long timestamp;
13
    public String content;
14 15

    public JID roomJID;
16
    public JID user;
17

18
    public static ClearspaceMUCTranscriptEvent roomDestroyed(JID roomJID, long timestamp) {
19 20 21
        ClearspaceMUCTranscriptEvent event = new ClearspaceMUCTranscriptEvent();
        event.type = Type.roomDestroyed;
        event.roomJID = roomJID;
22
        event.timestamp = timestamp;
23 24 25
        return event;
    }

26
    public static ClearspaceMUCTranscriptEvent occupantJoined(JID roomJID, JID user, long timestamp) {
27 28 29 30
        ClearspaceMUCTranscriptEvent event = new ClearspaceMUCTranscriptEvent();
        event.type = Type.occupantJoined;
        event.roomJID = roomJID;
        event.user = user;
31
        event.timestamp = timestamp;
32 33 34
        return event;
    }

35
    public static ClearspaceMUCTranscriptEvent occupantLeft(JID roomJID, JID user, long timestamp) {
36 37 38 39
        ClearspaceMUCTranscriptEvent event = new ClearspaceMUCTranscriptEvent();
        event.type = Type.occupantLeft;
        event.roomJID = roomJID;
        event.user = user;
40
        event.timestamp = timestamp;
41 42 43
        return event;
    }

44
    public static ClearspaceMUCTranscriptEvent messageReceived(JID roomJID, JID user, String body,
45
                                                                   long timestamp) {
46
        ClearspaceMUCTranscriptEvent event = new ClearspaceMUCTranscriptEvent();
47
        event.type = Type.messageReceived;
48 49
        event.roomJID = roomJID;
        event.user = user;
50
        event.content = body;
51
        event.timestamp = timestamp;
52 53 54
        return event;
    }

55 56 57 58 59 60 61 62 63
    public static ClearspaceMUCTranscriptEvent roomSubjectChanged(JID roomJID, JID user, String newSubject,
                                                                  long timestamp) {
        ClearspaceMUCTranscriptEvent event = new ClearspaceMUCTranscriptEvent();
        event.type = Type.roomSubjectChanged;
        event.roomJID = roomJID;
        event.user = user;
        event.content = newSubject;
        event.timestamp = timestamp;
        return event;
64 65
    }

66
    public static enum Type {
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
        /**
         * Event triggered when a room was destroyed.
         */
        roomDestroyed,
        /**
         * Event triggered when a new occupant joins a room.
         */
        occupantJoined,
        /**
         * Event triggered when an occupant left a room.
         */
        occupantLeft,
        /**
         * Event triggered when a room occupant sent a message to a room.
         */
82 83 84 85 86
        messageReceived,
        /**
         * Event triggered when a room's subject has changed.
         */
        roomSubjectChanged
87 88
    }
}