Package org.djutils.event.util
Class EventProducingCollection<T>
java.lang.Object
org.djutils.event.EventProducer
org.djutils.event.util.EventProducingCollection<T>
- Type Parameters:
T
- The type t od the eventproducing list.
- All Implemented Interfaces:
Serializable
,Iterable<T>
,Collection<T>
,EventListener
,EventListenerInterface
,EventProducerInterface
public class EventProducingCollection<T> extends EventProducer implements EventListenerInterface, Collection<T>
The Event producing collection provides a set to which one can subscribe interest in entry changes. This class does not keep
track of changes which take place indirectly. One is for example not notified on
map.iterator.remove()
. A
listener must subscribe to the iterator individually.
Copyright (c) 2002-2020 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djutils.org. The DJUTILS project is distributed under a three-clause BSD-style license, which can be found at https://djutils.org/docs/license.html. This class was originally part of the DSOL project, see https://simulation.tudelft.nl/dsol/manual.
- Author:
- Peter Jacobs , Alexander Verbraeck
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description static EventType
OBJECT_ADDED_EVENT
OBJECT_ADDED_EVENT is fired on new entries.static EventType
OBJECT_CHANGED_EVENT
OBJECT_CHANGED_EVENT is fired on change of one or more entries.static EventType
OBJECT_REMOVED_EVENT
OBJECT_REMOVED_EVENT is fired on removel of entries.Fields inherited from interface org.djutils.event.EventProducerInterface
FIRST_POSITION, LAST_POSITION
-
Constructor Summary
Constructors Constructor Description EventProducingCollection(Collection<T> parent, Serializable sourceId)
constructs a new EventProducingCollectiont.EventProducingCollection(Collection<T> parent, IdProvider sourceIdProvider)
Constructs a new EventProducingCollection. -
Method Summary
Modifier and Type Method Description boolean
add(T o)
boolean
addAll(Collection<? extends T> c)
void
clear()
boolean
contains(Object o)
boolean
containsAll(Collection<?> c)
Serializable
getSourceId()
Provide the sourceId that will be transmitted with the fired Event.boolean
isEmpty()
EventProducingIterator<T>
iterator()
void
notify(EventInterface event)
Notifies the event listener of an event.boolean
remove(Object o)
boolean
removeAll(Collection<?> c)
boolean
retainAll(Collection<?> c)
int
size()
Object[]
toArray()
<E> E[]
toArray(E[] a)
Methods inherited from class org.djutils.event.EventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray
-
Field Details
-
OBJECT_ADDED_EVENT
OBJECT_ADDED_EVENT is fired on new entries. -
OBJECT_REMOVED_EVENT
OBJECT_REMOVED_EVENT is fired on removel of entries. -
OBJECT_CHANGED_EVENT
OBJECT_CHANGED_EVENT is fired on change of one or more entries.
-
-
Constructor Details
-
EventProducingCollection
constructs a new EventProducingCollectiont.- Parameters:
parent
- Collection<T>; the parent collection.sourceId
- Serializable; the id by which the EventProducer can be identified by the EventListener
-
EventProducingCollection
Constructs a new EventProducingCollection.- Parameters:
parent
- Collection<T>; the parent set.sourceIdProvider
- IdProvider; the function that produces the id by which the EventProducer can be identified by the EventListener
-
-
Method Details
-
getSourceId
Provide the sourceId that will be transmitted with the fired Event.- Specified by:
getSourceId
in interfaceEventProducerInterface
- Specified by:
getSourceId
in classEventProducer
- Returns:
- Serializable; the sourceId that will be transmitted with the fired Event
-
size
public int size()- Specified by:
size
in interfaceCollection<T>
-
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfaceCollection<T>
-
clear
public void clear()- Specified by:
clear
in interfaceCollection<T>
-
add
- Specified by:
add
in interfaceCollection<T>
-
addAll
- Specified by:
addAll
in interfaceCollection<T>
-
contains
- Specified by:
contains
in interfaceCollection<T>
-
containsAll
- Specified by:
containsAll
in interfaceCollection<T>
-
iterator
-
notify
Notifies the event listener of an event. This operation forms the callback method of the asynchronous communication protocol expressed in the event package.- Specified by:
notify
in interfaceEventListenerInterface
- Parameters:
event
- EventInterface; the event which is sent to the listener- Throws:
RemoteException
- If a network connection failure occurs.
-
remove
- Specified by:
remove
in interfaceCollection<T>
-
removeAll
- Specified by:
removeAll
in interfaceCollection<T>
-
retainAll
- Specified by:
retainAll
in interfaceCollection<T>
-
toArray
- Specified by:
toArray
in interfaceCollection<T>
-
toArray
public <E> E[] toArray(E[] a)- Specified by:
toArray
in interfaceCollection<T>
-