/
area/
classes/net/sourceforge/pain/logic/
classes/net/sourceforge/pain/logic/event/
classes/net/sourceforge/pain/logic/fn/util/
classes/net/sourceforge/pain/network/console/
classes/net/sourceforge/pain/plugin/
classes/net/sourceforge/pain/plugin/reset/
classes/net/sourceforge/pain/plugin/shutdown/
classes/net/sourceforge/pain/plugin/social/
classest/net/sourceforge/pain/db/data/
doc/
doc/paindb/resources/
src/net/sourceforge/pain/logic/
src/net/sourceforge/pain/logic/event/
src/net/sourceforge/pain/logic/fn/util/
src/net/sourceforge/pain/network/console/
src/net/sourceforge/pain/network/console/telnet/
src/net/sourceforge/pain/plugin/
src/net/sourceforge/pain/plugin/command/
src/net/sourceforge/pain/plugin/reset/
src/net/sourceforge/pain/plugin/shutdown/
src/net/sourceforge/pain/plugin/social/
src/net/sourceforge/pain/util/
tests/
tests/net/sourceforge/pain/db/data/
package net.sourceforge.pain.data.type;


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


/**
 Indexed(Named) space is a Space that has it's own global name (unique index) and can be references by this
 index from logic(reloadable part of code) code
 All 'rooms' usually is an instances of IndexedSpace class, temporary Spaces (backpacks..) are not.
 */
public final class IndexedSpace extends Role {

	/** since VNUM is prototype only property we should assign UNIQUE_SPACE_ID to
	 * any space that statically referenced by code (by not db object)
	 * every Room will have an UNIQUE_SPACE_ID - > some kind of VNUM but  not VNUM
	 */
	public static final int UNIQUE_SPACE_ID = 1 + LAST_BASE_FIELD_INDEX;

	public static final int NFIELDS = 2 + LAST_BASE_FIELD_INDEX;

	public final static Class superroles[] = new Class[]{Space.class};




	public IndexedSpace() {
	}

	public IndexedSpace(PainDB db) {
		super(db);
	}

	public DbClassSchema provideSchema() {
		byte types[] = new byte[NFIELDS];
		String names[] = new String[NFIELDS];

		fillSuperSchema(types, names);

		types[UNIQUE_SPACE_ID] = DbType.STRING;
		names[UNIQUE_SPACE_ID] = "unique_space_id";

		return new DbClassSchema(types, names);
	}


	public String getSpaceUniqueId() {
		return getString(UNIQUE_SPACE_ID);
	}

	public void setSpaceUniqueId(String id) {
		setString(UNIQUE_SPACE_ID, id);
	}

	public Class[] getSuperroles() {
		return superroles;
	}

	public Space asSpace() {
		return (Space) getRole(Space.class);
	}
}