/
codebase/src/net/sourceforge/pain/admin/console/command/
codebase/src/net/sourceforge/pain/data/role/
codebase/src/net/sourceforge/pain/network/console/telnet/
codebase/src/net/sourceforge/pain/network/guitool/
codebase/src/net/sourceforge/pain/plugin/
codebase/src/net/sourceforge/pain/util/
db/src/net/sourceforge/pain/util/
gui/
gui/lib/
gui/src/net/sourceforge/pain/tools/guitool/dbbrowse/
gui/src/net/sourceforge/pain/tools/guitool/dialog/
gui/src/net/sourceforge/pain/tools/guitool/menu/
gui/src/net/sourceforge/pain/tools/guitool/resources/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/
gui/src/net/sourceforge/pain/tools/guitool/resources/images/explorer/
mudlibs/tinylib/
mudlibs/tinylib/area/
mudlibs/tinylib/etc/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/affect/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/prototype/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/data/trigger/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/affect/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/deploy/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/guitool/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/event/guitool/event/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/fn/util/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/trigger/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/logic/trigger/impl/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/command/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/reset/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/shutdown/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/plugin/social/
mudlibs/tinylib/src/net/sourceforge/pain/tinylib/util/
tests/
tests/src/
tests/src/net/sourceforge/pain/db/data/
package net.sourceforge.pain.tinylib.data.type;


import net.sourceforge.pain.data.*;
import net.sourceforge.pain.db.*;
import net.sourceforge.pain.tinylib.*;

import java.util.*;


/**
 * Reset group is a group with a common time for all resets
 */
public final class ResetGroup extends Role {

    private static final int NEXT_RESET_TIME = 1 + LAST_BASE_FIELD_INDEX;
    private static final int RESET_PERIOD = 2 + LAST_BASE_FIELD_INDEX;
    private static final int RESET_MESSAGE = 3 + LAST_BASE_FIELD_INDEX;
    private static final int RESETS = 4 + LAST_BASE_FIELD_INDEX;
    private static final int GROUP_ID = 5 + LAST_BASE_FIELD_INDEX;
    private static final int GROUP_INFO = 6 + LAST_BASE_FIELD_INDEX;
    private 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 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);
    }

    /**
     * this method will automatically (re)register this reset group in
     * ResetGroupRegistry
     *
     * @param newId new unique reset group id
     */
    public void setGroupId(String newId) {
        Mudlib.getWorld().getResetGroupRegistry().changeGroupId(this, newId);
    }

    /**
     * internal for system method
     */
    public void __setGroupId(String id) {
        setString(GROUP_ID, id);
    }

    public String getGroupId() {
        return getString(GROUP_ID);
    }

}