1
package org.jboss.remoting.samples.chat.server;
6
* <p>Copyright: Copyright (c) 2003</p>
8
* @author not attributable
12
import java.io.IOException;
13
import java.io.Serializable;
14
import java.util.ArrayList;
15
import java.util.Collection;
16
import java.util.Collections;
17
import java.util.HashSet;
18
import java.util.Hashtable;
19
import java.util.Iterator;
21
import org.jboss.remoting.samples.chat.client.ChatInfo;
22
import org.jboss.remoting.samples.chat.client.ChatMember;
23
import org.jboss.remoting.samples.chat.exceptions.NameInUseException;
24
import org.jboss.remoting.samples.chat.utility.ReadWriteArrayList;
26
public class ExtendedChatInfo implements Serializable
28
private static final long serialVersionUID = 3;
30
private ChatInfo chatInfo;
31
private ReadWriteArrayList messages;
32
private Collection members;
33
transient private Hashtable threadMap;
34
transient private Collection chatReceivers;
36
public ExtendedChatInfo(ChatInfo chatInfo)
38
this.chatInfo = chatInfo;
39
messages = new ReadWriteArrayList();
40
members = Collections.synchronizedCollection(new HashSet());
41
threadMap = new Hashtable();
42
chatReceivers = Collections.synchronizedCollection(new HashSet());
45
private void readObject(java.io.ObjectInputStream in)
46
throws IOException, ClassNotFoundException
48
in.defaultReadObject();
49
threadMap = new Hashtable();
50
chatReceivers = Collections.synchronizedCollection(new HashSet());
53
public ChatInfo getChatInfo()
56
public Collection getMembers()
59
public ReadWriteArrayList getMessages()
62
public Collection getChatReceivers()
63
{return chatReceivers;}
65
public CallbackThread getChatReceiverThread(ChatMember member)
66
{ return (CallbackThread) threadMap.get(member.get_name()); }
68
public void addMember(ChatMember member)
69
throws NameInUseException
71
String name = member.get_name();
73
if (members.contains(name))
74
throw new NameInUseException();
79
public void removeMember(ChatMember member)
81
String name = member.get_name();
82
threadMap.remove(name);
87
public void addMessages(ArrayList messages)
89
Iterator it = messages.iterator();
92
this.messages.add(it.next());
96
public void addMessage(String message)
98
messages.add(message);