package org.limewire.setting.evt;
import org.limewire.setting.SettingsGroup;
import org.limewire.setting.SettingsGroupManager;
/**
* SettingsHandlerEvent are fired when a {@link SettingsGroupManager} instance changed.
*/
public class SettingsGroupManagerEvent {
/**
* Various types of events that may occur.
*/
public static enum EventType {
/**
* Fired when Settings were added to the handler.
*/
SETTINGS_GROUP_ADDED,
/**
* Fired when Settings were removed from the handler.
*/
SETTINGS_GROUP_REMOVED,
/**
* Fired when all Settings were reloaded.
*/
RELOAD,
/**
* Fired when all Settings were saved.
*/
SAVE,
/**
* Fired when all Settings were revered back to
* the default values.
*/
REVERT_TO_DEFAULT,
/**
* Fired when the should save flag was changed.
*/
SHOULD_SAVE
}
private final EventType type;
private final SettingsGroupManager manager;
private final SettingsGroup group;
/**
* Constructs a SettingsHandlerEvent.
*
* @param type the type of the event
* @param manager the handler that triggered this event
* @param group the SettingsGroup instance that was added or removed (null in other cases)
*/
public SettingsGroupManagerEvent(EventType type, SettingsGroupManager manager, SettingsGroup group) {
if (type == null) {
throw new NullPointerException("EventType is null");
}
if (manager == null) {
throw new NullPointerException("SettingsGroupManager is null");
}
this.type = type;
this.manager = manager;
this.group = group;
}
/**
* Returns the type of the event.
*/
public EventType getEventType() {
return type;
}
/**
* Returns the SettingsHandler instance that triggered this event.
*/
public SettingsGroupManager getSettingsManager() {
return manager;
}
/**
* The SettingsGroup instance that was added or removed. It's null in
* all other cases.
*/
public SettingsGroup getSettingsGroup() {
return group;
}
@Override
public String toString() {
return type.toString();
}
}