package net.sourceforge.pain.data.type;
import net.sourceforge.pain.data.*;
import net.sourceforge.pain.db.*;
import java.util.*;
/**
 * Reset group is a group with a common time for all resets
 */
public final class ResetGroup extends Role {
	public static final int NEXT_RESET_TIME = 1 + LAST_BASE_FIELD_INDEX;
	public static final int RESET_PERIOD = 2 + LAST_BASE_FIELD_INDEX;
	public static final int RESET_MESSAGE = 3 + LAST_BASE_FIELD_INDEX;
	public static final int RESETS = 4 + LAST_BASE_FIELD_INDEX;
	public static final int GROUP_ID = 5 + LAST_BASE_FIELD_INDEX;
	public static final int GROUP_INFO = 6 + LAST_BASE_FIELD_INDEX;
	public static final int NFIELDS = 7 + LAST_BASE_FIELD_INDEX;
	public ResetGroup() {
	}
	public ResetGroup(PainDB db) {
		super(db);
	}
	public DbClassSchema provideSchema() {
		byte types[] = new byte[NFIELDS];
		String names[] = new String[NFIELDS];
		fillSuperSchema(types, names);
		types[NEXT_RESET_TIME] = DbType.INT;
		names[NEXT_RESET_TIME] = "next_reset_time";
		types[RESET_PERIOD] = DbType.INT;
		names[RESET_PERIOD] = "reset_period";
		types[RESET_MESSAGE] = DbType.STRING;
		names[RESET_MESSAGE] = "reset_message";
		types[RESETS] = DbType.REFERENCE_SET;
		names[RESETS] = "resets";
		types[GROUP_ID] = DbType.STRING;
		names[GROUP_ID] = "group_id";
		types[GROUP_INFO] = DbType.STRING;
		names[GROUP_INFO] = "group_info";
		return new DbClassSchema(types, names);
	}
	public int getResetPeriod() {
		return getInt(RESET_PERIOD);
	}
	public void setResetPeriod(int time) {
		setInt(RESET_PERIOD, time);
	}
	public int getNextResetTime() {
		return getInt(NEXT_RESET_TIME);
	}
	public void setNextResetTime(int time) {
		setInt(NEXT_RESET_TIME, time);
	}
	public String getResetMessage() {
		return getString(RESET_MESSAGE);
	}
	public void setResetMessage(String message) {
		setString(RESET_MESSAGE, message);
	}
	public Set getResets() {
		return Collections.unmodifiableSet(getRefSet(RESETS));
	}
	public void addReset(Reset reset) {
		getRefSet(RESETS).add(reset);
	}
	public void setGroupInfo(String info) {
		setString(GROUP_INFO, info);
	}
	public String getGroupInfo() {
		return getString(GROUP_INFO);
	}
	public void setGroupId(String id) {
		setString(GROUP_ID, id);
	}
	public String getGroupId() {
		return getString(GROUP_ID);
	}
}