package org.limewire.setting.evt;
import org.limewire.setting.SettingsGroup;
/**
* SettingsEvent are fired when a {@link SettingsGroup} instance changed.
*/
public class SettingsGroupEvent {
/**
* Various SettingsEvent that may occur.
*/
public static enum EventType {
/**
* The Settings were saved.
*/
SAVE,
/**
* The Settings were reloaded.
*/
RELOAD,
/**
* The Settings were reverted back to default.
*/
REVERT_TO_DEFAULT,
/**
* The 'should save' state of the Settings changed.
*/
SHOULD_SAVE
}
/**
* The type of the event.
*/
private final EventType type;
/**
* The {@link SettingsGroup} instance that created this event.
*/
private final SettingsGroup group;
/**
* Constructs a SettingsEvent.
*
* @param type the type of the event
* @param group the {@link SettingsGroup} instance that triggered this event
*/
public SettingsGroupEvent(EventType type, SettingsGroup group) {
if (type == null) {
throw new NullPointerException("EventType is null");
}
if (group == null) {
throw new NullPointerException("SettingsGroup is null");
}
this.type = type;
this.group = group;
}
/**
* Returns the type of the event.
*/
public EventType getEventType() {
return type;
}
/**
* Returns the {@link SettingsGroup} instance that fired this event.
*/
public SettingsGroup getSettingsGroup() {
return group;
}
@Override
public String toString() {
return type + ": " + group;
}
}