All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.remoting.samples.chat.server.ExtendedChatInfo Maven / Gradle / Ivy

There is a newer version: 5.0.29.Final
Show newest version
package org.jboss.remoting.samples.chat.server;

/**
 * 

Title: Chat4

*

Description:

*

Copyright: Copyright (c) 2003

*

Company:

* @author not attributable * @version 1.0 */ import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import org.jboss.remoting.samples.chat.client.ChatInfo; import org.jboss.remoting.samples.chat.client.ChatMember; import org.jboss.remoting.samples.chat.exceptions.NameInUseException; import org.jboss.remoting.samples.chat.utility.ReadWriteArrayList; public class ExtendedChatInfo implements Serializable { private static final long serialVersionUID = 3; private ChatInfo chatInfo; private ReadWriteArrayList messages; private Collection members; transient private Hashtable threadMap; transient private Collection chatReceivers; public ExtendedChatInfo(ChatInfo chatInfo) { this.chatInfo = chatInfo; messages = new ReadWriteArrayList(); members = Collections.synchronizedCollection(new HashSet()); threadMap = new Hashtable(); chatReceivers = Collections.synchronizedCollection(new HashSet()); } private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); threadMap = new Hashtable(); chatReceivers = Collections.synchronizedCollection(new HashSet()); } public ChatInfo getChatInfo() {return chatInfo;} public Collection getMembers() {return members;} public ReadWriteArrayList getMessages() {return messages;} public Collection getChatReceivers() {return chatReceivers;} public CallbackThread getChatReceiverThread(ChatMember member) { return (CallbackThread) threadMap.get(member.get_name()); } public void addMember(ChatMember member) throws NameInUseException { String name = member.get_name(); if (members.contains(name)) throw new NameInUseException(); members.add(name); } public void removeMember(ChatMember member) { String name = member.get_name(); threadMap.remove(name); members.remove(name); } public void addMessages(ArrayList messages) { Iterator it = messages.iterator(); while (it.hasNext()) { this.messages.add(it.next()); } } public void addMessage(String message) { messages.add(message); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy