Package ome.services.eventlogs
Class EventBacklog
- java.lang.Object
-
- ome.services.eventlogs.EventBacklog
-
public class EventBacklog extends java.lang.ObjectThread-safe java.util-like Container for storingEventLoginstances for later parsing. This container, however, will not add more than twologswith the same (id, eventType, action) tuple. Further, the container can only either be in the adding state or the removing state. A newly createdEventBacklogis in the adding state. The popping state is entered the first time thatremove()is called. And the adding state will only be re-entered, onceremove()has returned null andlogsis empty. All calls toadd(EventLog)while in the popping state will return false.- Since:
- 3.0-Beta3.1
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanaddingSwitch between the adding and the removing states.
-
Constructor Summary
Constructors Constructor Description EventBacklog()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(ome.model.meta.EventLog log)Adds the givenEventLoginstance to the end of a queue for laterpoppingif no equivalentEventLogis present.voidflipState()Flips theEventBacklogto the "adding" state if it is empty, otherwise to the "removing" state.ome.model.meta.EventLogremove()Removes and returns the nextEventLoginstance or null if none is present.booleanremovingOnly()Check the current state of theEventBacklog.
-
-
-
Method Detail
-
add
public boolean add(ome.model.meta.EventLog log)
Adds the givenEventLoginstance to the end of a queue for laterpoppingif no equivalentEventLogis present. Equivalence is based on the entityType, entityId, and action fields. Records tracking information to prevent the sameEventLogfrom being re-added before the last instance is removed.
-
remove
public ome.model.meta.EventLog remove()
Removes and returns the nextEventLoginstance or null if none is present. Also cleans up any tracking information for the givenEventLog.- Returns:
- See above.
-
flipState
public void flipState()
Flips theEventBacklogto the "adding" state if it is empty, otherwise to the "removing" state. This is necessary since the indexing happens only at flush time in theFullTextIndexer. This restriction means in any one batch only either backlog or new event logs will be processed.- See Also:
EventLogLoader.hasNext()
-
removingOnly
public boolean removingOnly()
Check the current state of theEventBacklog. If in the "removingOnly" state, then any calls toadd(EventLog)will return false.
-
-