Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)
Event queues can be found in the core (package org.jamesii.core.util.eventset), eventqueues-unreleased (package eventqueues) and elsewhere. Of the unreleased ones, some look more polished than some in the core, others again fail key tests and may be unsalvageable.
The behavior of event queues regarding, for example,
(1) addition of events that are equal but not identical
(2) order of events added with the same time stamp
(3) what information toString() contains (class name? elements?)
is not specified and not easily discernible.
(4) the purpose of dequeueAllHashed() does not become clear (it returns a Map<E,Object> with null values whereas dequeueAll() returns a List<E>. This seems problematic also w.r.t. to (1)). It is used only in PDEVS and ML-DEVS, where on a cursory reading the maps seem to be used like Collections, i.e. the values do not seem to matter. Anyway, if a map is needed it could easily be constructed from the List returned by dequeueAll().
(5) dequeueAll() seems to be unfortunately named, as it does not dequeue all events, only all to which a certain condition applies (minimum time stamp).
(6) The distribution of method specifications between IBasicEventQueue and IEventQueue is conceptually well justified (in the respective comments), but practically rather confusing as the basic interface is used practically nowhere alone.