de.kosi.util
Class DistributedListImpl

java.lang.Object
  |
  +--de.kosi.util.DistributedListImpl
All Implemented Interfaces:
DistributedList, java.rmi.Remote, java.io.Serializable
Direct Known Subclasses:
DBDistributedListImpl

public class DistributedListImpl
extends java.lang.Object
implements DistributedList, java.io.Serializable

This class contains the default implementation of the DistributedList interface. In addition to the DistributedList methods, there are methods for adding and removing items, which may only be called by local code.

ChangeLog:

 $Log: DistributedListImpl.java,v $
 Revision 1.11  2001/08/02 10:44:30  jiriki
 Worked on Tournament

 Revision 1.10  2001/07/20 14:37:08  jiriki
 Fixed Bug 440605

 Revision 1.9  2001/07/20 13:45:48  jiriki
 Fixed Bug 440617

 Revision 1.8  2001/07/20 13:01:41  jiriki
 Start of BugFixing

 Revision 1.7  2001/06/22 13:24:32  jiriki
 Implemented kicking

 Revision 1.6  2001/06/12 17:14:33  jiriki
 - Reimplemented DistributedList to make filters working
 - Made ServertestCase working.

 Revision 1.5  2001/06/04 14:21:10  jiriki
 Made source more comliant to coding guidelines.

 Revision 1.4  2001/05/22 10:16:03  jiriki
 - Removed old unused Client class
 - Removed unused import statements.

 Revision 1.3  2001/05/20 16:00:40  jiriki
 Moved WaitObjectManager to ListenerList.

 Revision 1.2  2001/05/09 19:59:18  jiriki
 Removed Bug 422755.

 Revision 1.1.1.1  2001/04/29 18:05:19  jiriki
 Imported sources from zola.

 Revision 1.16  2001/04/11 17:40:49  wombat
 Updated Documentation.

 Revision 1.15  2001/04/11 16:54:04  wombat
 Removed some bugs when joining table and immidiatly leaving again.

 Revision 1.14  2001/04/09 13:03:10  wombat
 Removed timeout from threadpool (did not work)

 Revision 1.13  2001/03/21 13:26:36  wombat
 - Removed bugs in Table
 - began implementation of stree client
 - updated documentation

 Revision 1.12  2001/03/20 18:17:31  wombat
 Added logging support

 Revision 1.11  2001/03/19 21:50:49  wombat
 - Worked on admin client.
 - improved shutdown sequence
 - removed bugs in login/logout sequence

 Revision 1.10  2001/03/18 17:32:04  wombat
 Changed database concept

 Revision 1.9  2001/03/01 21:28:14  wombat
 Updated TestClient
 Resolved some bugs

 Revision 1.8  2001/03/01 14:43:00  wombat
 Worked on table implementation.

 Revision 1.7  2001/02/26 11:21:45  wombat
 Worked on table.

 Revision 1.6  2001/02/25 23:16:05  wombat
 - deadlock vermeidung umgestellt.
 - ListenerList erstellt

 Revision 1.5  2001/02/19 23:21:17  wombat
 Added SSL Support, Implement DistributedListFilter

 Revision 1.4  2001/02/02 10:59:15  wombat
 Updated Documentationm

 Revision 1.3  2001/02/01 14:25:45  wombat
 Intoduced InvalidSessionException

 Revision 1.2  2001/01/31 15:08:19  wombat
 Updated documentation

 

Version:
$Revision: 1.11 $ ($Date: 2001/08/02 10:44:30 $)
Author:
Jan-Ole Janssen, Niklas Mehner, Time Sticher
See Also:
Serialized Form

Constructor Summary
  DistributedListImpl()
          Creates a new (empty) DistributedListImpl.
protected DistributedListImpl(java.util.List entries)
          Creates a new DistributedListImpl based on a list of entries.
 
Method Summary
 void add(java.lang.Object entry)
          Adds an entry to the list.
 void addDistributedListListener(DistributedListListener listener, DistributedListFilter filter)
          Adds a DistributedListListener.
 void barrier()
          A barrier for the DistributedList.
 void change(java.lang.Object entry)
          Notifies the list, that an entry has changed.
 de.kosi.util.DistributedListImpl.FilteredListener getFilteredListener(DistributedListFilter filter)
           
 int getFilteredListenerCount()
           
protected  java.lang.Object readResolve()
          This method is called during deserialization and is used to initialize transient fields.
 void remove(java.lang.Object entry)
          Removes an entry from the list.
 void removeDistributedListListener(DistributedListListener listener)
          Removes a DistributedListListener.
 int size()
          Return the nubmer of entries in the list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistributedListImpl

public DistributedListImpl()
Creates a new (empty) DistributedListImpl.

DistributedListImpl

protected DistributedListImpl(java.util.List entries)
Creates a new DistributedListImpl based on a list of entries.
Parameters:
entries - List this Distributed list should be based on.
Method Detail

readResolve

protected java.lang.Object readResolve()
This method is called during deserialization and is used to initialize transient fields.
Returns:
this

getFilteredListenerCount

public int getFilteredListenerCount()

add

public void add(java.lang.Object entry)
Adds an entry to the list.
Parameters:
entry - entry to be added to the list.
Throws:
java.lang.IllegalArgumentException - If the entry is already contained in the list

remove

public void remove(java.lang.Object entry)
Removes an entry from the list.
Parameters:
entry - entry to be removed to the list.

change

public void change(java.lang.Object entry)
Notifies the list, that an entry has changed.
Parameters:
entry - entry that has changed.

barrier

public void barrier()
A barrier for the DistributedList. When this method is invoked, it is assured, that all outstanding events are dispatched, before the method returns.

size

public int size()
Return the nubmer of entries in the list.
Returns:
number of entries.

getFilteredListener

public de.kosi.util.DistributedListImpl.FilteredListener getFilteredListener(DistributedListFilter filter)

addDistributedListListener

public void addDistributedListListener(DistributedListListener listener,
                                       DistributedListFilter filter)
                                throws InvalidSessionException
Adds a DistributedListListener.
Specified by:
addDistributedListListener in interface DistributedList
Parameters:
listener - listener to be added.
filter - filter for that listener. Only entries, that are not filtered are send to the listener.
Throws:
InvalidSessionException - when not called from within a valid session context.

removeDistributedListListener

public void removeDistributedListListener(DistributedListListener listener)
Removes a DistributedListListener. This method dispatches the task of removeing the listener to the cleaner thread.
Specified by:
removeDistributedListListener in interface DistributedList
Parameters:
listener - listener to be removed.