View Javadoc

1   package cz.cuni.amis.utils.collections;
2   
3   import java.util.Collection;
4   
5   /**
6    * Simple listener called for each element that has changed even in batch updates.
7    * @author ik
8    */
9   public abstract class ElementListener<T> extends SimpleListener<T> {
10  
11      /**
12       * Called each time an element changes.
13       * @param elem
14       * @param added
15       */
16      public abstract void elementChanged(T elem, boolean added);
17  
18      @Override
19      protected void changed(Collection<T> collection, Collection<T> added, Collection<T> removed) {
20          Collection<T> changed = null;
21          boolean addedFlag = true;
22  
23          if(added != null) {
24              changed = added;
25          } else {
26              changed = removed;
27              addedFlag = false;
28          }
29  
30          for (T elem : changed) {
31              elementChanged(elem, addedFlag);
32          }
33      }
34  }