org.apache.commons.events.observable
Class ObservableBuffer

java.lang.Object
  extended by org.apache.commons.collections.collection.AbstractCollectionDecorator
      extended by org.apache.commons.events.observable.ObservableCollection
          extended by org.apache.commons.events.observable.ObservableBuffer
All Implemented Interfaces:
Iterable, Collection, org.apache.commons.collections.Buffer

public class ObservableBuffer
extends ObservableCollection
implements org.apache.commons.collections.Buffer

Decorates a Buffer implementation to observe modifications.

Each modifying method call made on this Buffer is forwarded to a ModificationHandler. The handler manages the event, notifying listeners and optionally vetoing changes. The default handler is StandardModificationHandler. See this class for details of configuration available.

Since:
Commons Events 1.0
Version:
$Revision: 155443 $ $Date: 2005-02-26 13:19:51 +0000 (Sat, 26 Feb 2005) $
Author:
Stephen Colebourne

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.commons.events.observable.ObservableCollection
ObservableCollection.ObservableIterator
 
Field Summary
 
Fields inherited from class org.apache.commons.events.observable.ObservableCollection
handler
 
Fields inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator
collection
 
Constructor Summary
protected ObservableBuffer(org.apache.commons.collections.Buffer buffer, Object listener)
          Constructor that wraps (not copies).
 
Method Summary
static ObservableBuffer decorate(org.apache.commons.collections.Buffer buffer)
          Factory method to create an observable buffer.
static ObservableBuffer decorate(org.apache.commons.collections.Buffer buffer, Object listener)
          Factory method to create an observable buffer using a listener or a handler.
 Object get()
           
 Object remove()
           
 
Methods inherited from class org.apache.commons.events.observable.ObservableCollection
add, addAll, clear, createHandler, decorate, decorate, getHandler, iterator, registerFactory, remove, removeAll, retainAll
 
Methods inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator
contains, containsAll, equals, getCollection, hashCode, isEmpty, size, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

Constructor Detail

ObservableBuffer

protected ObservableBuffer(org.apache.commons.collections.Buffer buffer,
                           Object listener)
Constructor that wraps (not copies).

The handler implementation is determined by the listener parameter via the registered factories. The listener may be a manually configured ModificationHandler instance.

Parameters:
buffer - the buffer to decorate, must not be null
listener - the listener, may be null
Throws:
IllegalArgumentException - if the buffer is null
Method Detail

decorate

public static ObservableBuffer decorate(org.apache.commons.collections.Buffer buffer)
Factory method to create an observable buffer.

A StandardModificationHandler will be created. This can be accessed by ObservableCollection.getHandler() to add listeners.

Parameters:
buffer - the buffer to decorate, must not be null
Returns:
the observed Buffer
Throws:
IllegalArgumentException - if the buffer is null

decorate

public static ObservableBuffer decorate(org.apache.commons.collections.Buffer buffer,
                                        Object listener)
Factory method to create an observable buffer using a listener or a handler.

A lot of functionality is available through this method. If you don't need the extra functionality, simply implement the StandardModificationListener interface and pass it in as the second parameter.

Internally, an ObservableBuffer relies on a ModificationHandler. The handler receives all the events and processes them, typically by calling listeners. Different handler implementations can be plugged in to provide a flexible event system.

The handler implementation is determined by the listener parameter via the registered factories. The listener may be a manually configured ModificationHandler instance.

The listener is defined as an Object for maximum flexibility. It does not have to be a listener in the classic JavaBean sense. It is entirely up to the factory and handler as to how the parameter is interpretted. An IllegalArgumentException is thrown if no suitable handler can be found for this listener.

A null listener will create a StandardModificationHandler.

Parameters:
buffer - the buffer to decorate, must not be null
listener - buffer listener, may be null
Returns:
the observed buffer
Throws:
IllegalArgumentException - if the buffer is null
IllegalArgumentException - if there is no valid handler for the listener

get

public Object get()
Specified by:
get in interface org.apache.commons.collections.Buffer

remove

public Object remove()
Specified by:
remove in interface org.apache.commons.collections.Buffer


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.