/
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/
import net.sourceforge.pain.db.*;

import java.util.*;

/**
 * Any subclass of DbObject is persistent object
 */
public class MyDataObject extends DbObject {

    /**
     * This constructor is used by PAiN DB during startup.
     * No field access allowed from it.
     */
    public MyDataObject() {
    }

    /**
     * This constructor is used by user for new objects creation
     * object is atteched to given database.
     * Object schema is automatically imported to db
     */
    public MyDataObject(PainDB db) throws RuntimeException {
        super(db);
    }

    /**
     * method called by database every time new class added to database
     * (one per class)
     */
    protected DbClassSchema provideSchema() {
        byte[] types = new byte[3];
        String[] names = new String[3];

        types[0] = DbType.INT;
        names[0] = "my_int_field";

        types[1] = DbType.STRING;
        names[1] = "my_string_field";

        types[2] = DbType.REFERENCE_SET;
        names[2] = "my_references";

        return new DbClassSchema(types, names);
    }

    public int getMyIntField() {
        return getInt(0);
    }

    public void setMyIntField(int value) {
        setInt(0, value);
    }

    public String getMyStringField() {
        return getString(1);
    }

    public void setMyStringField(String value) {
        setString(1, value);
    }

    public Set getMyReferences() {
        return getRefSet(2);
    }
}