/**
   * Adds a listener for collection events.
   *
   * @param listener The listener to add
   */
  public void addListener(CollectionListener listener) {
    // create the bridge only if we have collection listeners around
    synchronized (listeners) {
      if (listeners.size() == 0) {
        featureSource.addFeatureListener(this.listener);
      }

      listeners.add(listener);
    }
  }