package com.github.pfichtner.jrunalyser.base.datasource; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * A DatasourceFascade that implements the methods for * {@link DatasourceFascadeListener}s. * * @author Peter Fichtner */ public abstract class AbstractDatasourceFascade implements DatasourceFascade { private final List<DatasourceFascadeListener> listeners = new CopyOnWriteArrayList<DatasourceFascadeListener>(); protected void fire(DatasourceFascadeEvent event) { for (DatasourceFascadeListener listener : this.listeners) { listener.contentChanged(event); } } @Override public void addListener(DatasourceFascadeListener listener) { this.listeners.add(listener); } @Override public void removeListener(DatasourceFascadeListener listener) { this.listeners.remove(listener); } }