/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
package org.xmind.core.internal.event;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.xmind.core.event.CoreEvent;
import org.xmind.core.event.ICoreEventListener;
/**
*
* @author frankshaka
* @deprecated Use CoreEventRegistrationList
*/
public class CoreEventListenerList {
private List<ICoreEventListener> listeners;
public CoreEventListenerList(ICoreEventListener listener) {
this.listeners = new ArrayList<ICoreEventListener>(4);
this.listeners.add(listener);
}
public CoreEventListenerList(ICoreEventListener[] listeners) {
this.listeners = new ArrayList<ICoreEventListener>(listeners.length);
this.listeners.addAll(Arrays.asList(listeners));
}
public void add(ICoreEventListener listener) {
if (listener == null)
return;
if (listeners == null) {
listeners = new ArrayList<ICoreEventListener>(4);
}
listeners.add(listener);
}
public void remove(ICoreEventListener listener) {
if (listener == null || this.listeners == null)
return;
listeners.remove(listener);
}
public boolean isEmpty() {
return listeners == null || listeners.isEmpty();
}
public void fireCoreEvent(CoreEvent e) {
if (listeners == null)
return;
Object[] list = listeners.toArray();
for (Object listener : list) {
((ICoreEventListener) listener).handleCoreEvent(e);
}
}
public boolean hasListener(ICoreEventListener listener) {
return listeners != null && listeners.contains(listener);
}
}