package regexgolf2.model;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
/**
* An abstract class that provides an Implementation for a simple
* 'ObjectChangedEvent'.
*/
public abstract class ObservableObject
{
private final List<ObjectChangedListener> _listeners = new ArrayList<>();
public void addObjectChangedListener(ObjectChangedListener listener)
{
_listeners.add(listener);
}
public void removeObjectChangedListener(ObjectChangedListener listener)
{
_listeners.remove(listener);
}
protected void fireObjectChangedEvent()
{
EventObject event = new EventObject(this);
for (ObjectChangedListener listener : _listeners)
{
listener.objectChanged(event);
}
}
}