package org.geowebcache.layer; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import org.geowebcache.conveyor.ConveyorTile; /** * Helper class for a {@link TileLayer} to maintain and dispatch events * * @author groldan * */ public class LayerListenerList { private List<TileLayerListener> listeners = new CopyOnWriteArrayList<TileLayerListener>(); public synchronized void addListener(TileLayerListener listener) { if (listener != null) { if (!listeners.contains(listener)) { listeners.add(listener); } } } public synchronized boolean removeListener(TileLayerListener listener) { return listeners.remove(listener); } public void sendTileRequested(TileLayer layer, ConveyorTile tile) { if (listeners.size() > 0) { for (int i = 0; i < listeners.size(); i++) { listeners.get(i).tileRequested(layer, tile); } } } }