/*
* Copyright (C) 2014 Alfons Wirtz
* website www.freerouting.net
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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. See the
* GNU General Public License at <http://www.gnu.org/licenses/>
* for more details.
*
* Observers.java
*
* Created on 13. Februar 2005, 09:14
*/
package datastructures;
/**
* Interface to observe changes on objects for syncronisatiation purposes.
*
* @author Alfons Wirtz
*/
public interface Observers<ObjectType>
{
/**
* Tell the observers the deletion p_object.
*/
void notify_deleted(ObjectType p_object);
/**
* Notify the observers, that they can syncronize the changes on p_object.
*/
void notify_changed(ObjectType p_object);
/**
* Enable the observers to syncronize the new created item.
*/
void notify_new(ObjectType p_object);
/** Starts notifying the observers */
void activate();
/** Ends notifying the observers */
void deactivate();
/**
* Returns, if the observer is activated.
*/
boolean is_active();
}