View Javadoc

1   /*
2    * To change this template, choose Tools | Templates
3    * and open the template in the editor.
4    */
5   
6   package cz.cuni.amis.utils.collections;
7   
8   import java.util.Collection;
9   
10  /**
11   * Collection listener with only one method changed() called on each change.
12   * @author ik
13   */
14  public abstract class SimpleListener<T> implements CollectionEventListener<T> {
15  
16      @Override
17      public void preAddEvent(Collection<T> toBeAdded, Collection<T> whereToAdd) {
18      }
19  
20      @Override
21      public void postAddEvent(Collection<T> alreadyAdded, Collection<T> whereWereAdded) {
22          changed(whereWereAdded, alreadyAdded, null);
23      }
24  
25      @Override
26      public void preRemoveEvent(Collection<T> toBeRemoved, Collection<T> whereToRemove) {
27      }
28  
29      @Override
30      public void postRemoveEvent(Collection<T> alreadyRemoved, Collection<T> whereWereRemoved) {
31          changed(whereWereRemoved, null, alreadyRemoved);
32      }
33  
34      /**
35       * Called when a change occures on the collection.
36       * @param collection The changed collection.
37       */
38      protected abstract void changed(Collection<T> collection, Collection<T> added, Collection<T> removed);
39  
40  }