- All Implemented Interfaces:
- java.lang.Cloneable
public class ChangeBufferingList
extends java.lang.Object
implements java.lang.Cloneable
Class buffers changes in 2 modes:
- Accumulating up to MAX_FILES changes appending them *sequentially* to changes array
- Adding changes to randomAccessContainer once it is available: later happens if we accumulated many changes or external client queried
state of the changes: asked for predicate, iterator, isEmpty, etc. We are trying hard to delay transformation of state upon 2nd reason for
performance reasons.
It is assumed that add / remove operations as well as read only operations are externally synchronized, the only synchronization is
performed upon transforming changes array into randomAccessContainer because it can be done during read only operations in several threads