aboutsummaryrefslogtreecommitdiff
path: root/src/org/jivesoftware/smackx/workgroup/WorkgroupInvitation.java
blob: ac3b5b6d956e9704fbafb51c35d8bfc0bcf9e91c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
 * $Revision$
 * $Date$
 *
 * Copyright 2003-2007 Jive Software.
 *
 * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.jivesoftware.smackx.workgroup;

import java.util.List;
import java.util.Map;

/**
 * An immutable class wrapping up the basic information which comprises a group chat invitation.
 *
 * @author loki der quaeler
 */
public class WorkgroupInvitation {

    protected String uniqueID;

    protected String sessionID;

    protected String groupChatName;
    protected String issuingWorkgroupName;
    protected String messageBody;
    protected String invitationSender;
    protected Map<String, List<String>> metaData;

    /**
     * This calls the 5-argument constructor with a null MetaData argument value
     *
     * @param jid the jid string with which the issuing AgentSession or Workgroup instance
     *                  was created
     * @param group the jid of the room to which the person is invited
     * @param workgroup the jid of the workgroup issuing the invitation
     * @param sessID the session id associated with the pending chat
     * @param msgBody the body of the message which contained the invitation
     * @param from the user jid who issued the invitation, if known, null otherwise
     */
    public WorkgroupInvitation (String jid, String group, String workgroup,
                       String sessID, String msgBody, String from) {
        this(jid, group, workgroup, sessID, msgBody, from, null);
    }

    /**
     * @param jid the jid string with which the issuing AgentSession or Workgroup instance
     *                  was created
     * @param group the jid of the room to which the person is invited
     * @param workgroup the jid of the workgroup issuing the invitation
     * @param sessID the session id associated with the pending chat
     * @param msgBody the body of the message which contained the invitation
     * @param from the user jid who issued the invitation, if known, null otherwise
     * @param metaData the metadata sent with the invitation
     */
    public WorkgroupInvitation (String jid, String group, String workgroup, String sessID, String msgBody,
                       String from, Map<String, List<String>> metaData) {
        super();

        this.uniqueID = jid;
        this.sessionID = sessID;
        this.groupChatName = group;
        this.issuingWorkgroupName = workgroup;
        this.messageBody = msgBody;
        this.invitationSender = from;
        this.metaData = metaData;
    }

    /**
     * @return the jid string with which the issuing AgentSession or Workgroup instance
     *  was created.
     */
    public String getUniqueID () {
        return this.uniqueID;
    }

    /**
     * @return the session id associated with the pending chat; working backwards temporally,
     *              this session id should match the session id to the corresponding offer request
     *              which resulted in this invitation.
     */
    public String getSessionID () {
        return this.sessionID;
    }

    /**
     * @return the jid of the room to which the person is invited.
     */
    public String getGroupChatName () {
        return this.groupChatName;
    }

    /**
     * @return the name of the workgroup from which the invitation was issued.
     */
    public String getWorkgroupName () {
        return this.issuingWorkgroupName;
    }

    /**
     * @return the contents of the body-block of the message that housed this invitation.
     */
    public String getMessageBody () {
        return this.messageBody;
    }

    /**
     * @return the user who issued the invitation, or null if it wasn't known.
     */
    public String getInvitationSender () {
        return this.invitationSender;
    }

    /**
     * @return the meta data associated with the invitation, or null if this instance was
     *              constructed with none
     */
    public Map<String, List<String>> getMetaData () {
        return this.metaData;
    }

}