A subscription that only tracks add/change/remove deltas.
See
CollectionSubscription for a system property that identifies
subscriptions that could potentially be changed to DeltaSubscriptions.
We subclass
IncrementalSubscription to both reuse code and to make
it easy for existing plugins to switch over to this class. For example, the
plugin won't need to change its field declaration from:
private IncrementalSubscription sub;
to be "DeltaSubscription". The only change is the subscribe line:
sub = (IncrementalSubscription)
blackboard.subscribe(new DeltaSubscription(pred));
The downside is a tiny cost per subscription for the pointer to the unused
"real" backing collection.