/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.pieShare.pieTools.pieUtilities.service.eventBase;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
/**
*
* @author Svetoslav
*/
public class EventBase<L extends IEventListener<E>, E extends EventObject> implements IEventBase<L,E>{
private List<L> listeners;
public EventBase() {
this.listeners = new ArrayList();
}
@Override
public void addEventListener(L listener) {
if(!this.listeners.contains(listener)) {
this.listeners.add(listener);
}
}
@Override
public void removeEventListener(L listener) {
if(this.listeners.contains(listener)) {
this.listeners.remove(listener);
}
}
@Override
public void fireEvent(E event) {
this.listeners.stream().forEach((listener) -> {
listener.handleObject(event);
});
}
}