/***************************************************************************** * Limpet - the Lightweight InforMation ProcEssing Toolkit * http://limpet.info * * (C) 2015-2016, Deep Blue C Technologies Ltd * * This library is free software; you can redistribute it and/or * modify it under the terms of the Eclipse Public License v1.0 * (http://www.eclipse.org/legal/epl-v10.html) * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *****************************************************************************/ package info.limpet.data.impl; import info.limpet.IChangeListener; import info.limpet.IStoreItem; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListenerHelper { private List<IChangeListener> _listeners; public ListenerHelper() { _listeners = new ArrayList<IChangeListener>(); } public void add(IChangeListener listener) { _listeners.add(listener); } public void fireDataChange(IStoreItem subject) { Iterator<IChangeListener> iter = _listeners.iterator(); while (iter.hasNext()) { IChangeListener iL = (IChangeListener) iter.next(); iL.dataChanged(subject); } } public void fireMetadataChange(IStoreItem subject) { Iterator<IChangeListener> iter = _listeners.iterator(); while (iter.hasNext()) { IChangeListener iL = (IChangeListener) iter.next(); iL.metadataChanged(subject); } } public void beingDeleted(IStoreItem subject) { Iterator<IChangeListener> iter = _listeners.iterator(); while (iter.hasNext()) { IChangeListener iL = (IChangeListener) iter.next(); iL.collectionDeleted(subject); } } public void remove(IChangeListener listener) { _listeners.remove(listener); } }