1 /** 2 * $Revision$ 3 * $Date$ 4 * 5 * Copyright 2003-2007 Jive Software. 6 * 7 * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 package org.jivesoftware.smackx.workgroup; 21 22 import java.util.List; 23 import java.util.Map; 24 25 /** 26 * An immutable class wrapping up the basic information which comprises a group chat invitation. 27 * 28 * @author loki der quaeler 29 */ 30 public class WorkgroupInvitation { 31 32 protected String uniqueID; 33 34 protected String sessionID; 35 36 protected String groupChatName; 37 protected String issuingWorkgroupName; 38 protected String messageBody; 39 protected String invitationSender; 40 protected Map<String, List<String>> metaData; 41 42 /** 43 * This calls the 5-argument constructor with a null MetaData argument value 44 * 45 * @param jid the jid string with which the issuing AgentSession or Workgroup instance 46 * was created 47 * @param group the jid of the room to which the person is invited 48 * @param workgroup the jid of the workgroup issuing the invitation 49 * @param sessID the session id associated with the pending chat 50 * @param msgBody the body of the message which contained the invitation 51 * @param from the user jid who issued the invitation, if known, null otherwise 52 */ 53 public WorkgroupInvitation (String jid, String group, String workgroup, 54 String sessID, String msgBody, String from) { 55 this(jid, group, workgroup, sessID, msgBody, from, null); 56 } 57 58 /** 59 * @param jid the jid string with which the issuing AgentSession or Workgroup instance 60 * was created 61 * @param group the jid of the room to which the person is invited 62 * @param workgroup the jid of the workgroup issuing the invitation 63 * @param sessID the session id associated with the pending chat 64 * @param msgBody the body of the message which contained the invitation 65 * @param from the user jid who issued the invitation, if known, null otherwise 66 * @param metaData the metadata sent with the invitation 67 */ 68 public WorkgroupInvitation (String jid, String group, String workgroup, String sessID, String msgBody, 69 String from, Map<String, List<String>> metaData) { 70 super(); 71 72 this.uniqueID = jid; 73 this.sessionID = sessID; 74 this.groupChatName = group; 75 this.issuingWorkgroupName = workgroup; 76 this.messageBody = msgBody; 77 this.invitationSender = from; 78 this.metaData = metaData; 79 } 80 81 /** 82 * @return the jid string with which the issuing AgentSession or Workgroup instance 83 * was created. 84 */ 85 public String getUniqueID () { 86 return this.uniqueID; 87 } 88 89 /** 90 * @return the session id associated with the pending chat; working backwards temporally, 91 * this session id should match the session id to the corresponding offer request 92 * which resulted in this invitation. 93 */ 94 public String getSessionID () { 95 return this.sessionID; 96 } 97 98 /** 99 * @return the jid of the room to which the person is invited. 100 */ 101 public String getGroupChatName () { 102 return this.groupChatName; 103 } 104 105 /** 106 * @return the name of the workgroup from which the invitation was issued. 107 */ 108 public String getWorkgroupName () { 109 return this.issuingWorkgroupName; 110 } 111 112 /** 113 * @return the contents of the body-block of the message that housed this invitation. 114 */ 115 public String getMessageBody () { 116 return this.messageBody; 117 } 118 119 /** 120 * @return the user who issued the invitation, or null if it wasn't known. 121 */ 122 public String getInvitationSender () { 123 return this.invitationSender; 124 } 125 126 /** 127 * @return the meta data associated with the invitation, or null if this instance was 128 * constructed with none 129 */ 130 public Map<String, List<String>> getMetaData () { 131 return this.metaData; 132 } 133 134 } 135