// This file is generated by genbeans tool. Do NOT edit it! @formatter:off
package jane.bean;
import java.util.HashMap;
import jane.core.Bean;
import jane.core.DBManager;
import jane.core.Octets;
import jane.core.Table;
import jane.core.TableLong;
import jane.core.map.IntHashMap;
/** 全部的数据库表的注册和使用类(自动生成的静态类) */
public final class AllTables
{
private AllTables() {}
private static final DBManager _dbm = DBManager.instance();
/**
* 注册全部的数据库表<p>
* 用于初始化和注册下面的全部静态成员(保持和AllBeans.register一致的用法), 并启动提交线程<br>
* 调用前要先初始化数据库管理器: DBManager.instance().startup(...)
*/
public static void register() { _dbm.startCommitThread(); }
/**
* 数据库表定义. key类型只能是32/64位整数/浮点数或字符串/binary类型或bean类型, id类型表示优化的非负数long类型
*/
public static final TableLong<TestType, TestType.Safe> TestTable = _dbm.<TestType, TestType.Safe>openTable(1, "TestTable", "test", 65536, TestType.BEAN_STUB);
/**
* value类型必须是bean定义的类型
*/
public static final Table<TestKeyBean, TestBean, TestBean.Safe> BeanTable = _dbm.<TestKeyBean, TestBean, TestBean.Safe>openTable(2, "BeanTable", "bean", 65536, TestKeyBean.BEAN_STUB, TestBean.BEAN_STUB);
/**
* 注意表名和key类型的对应关系是不能改变的
*/
public static final Table<Octets, TestEmpty, TestEmpty.Safe> OctetsTable = _dbm.<Octets, TestEmpty, TestEmpty.Safe>openTable(3, "OctetsTable", "bean", 1000, null, null);
/**
* 用于测试数据库的表
*/
public static final TableLong<TestBean, TestBean.Safe> Benchmark = _dbm.<TestBean, TestBean.Safe>openTable(4, "Benchmark", "bench", 50000, TestBean.BEAN_STUB);
/**
* 以下内部类可以单独使用,避免初始化前面的表对象,主要用于获取表的ID和键值类型
*/
public static final class Types
{
private static final IntHashMap<Types> idTypes = new IntHashMap<>(4 * 2);
private static final HashMap<String, Types> nameTypes = new HashMap<>(4 * 2);
public final int tableId;
public final String tableName;
public final Bean<?> keyBeanStub;
public final Bean<?> valueBeanStub;
private Types(int id, String name, Bean<?> kbs, Bean<?> vbs)
{
tableId = id;
tableName = name;
keyBeanStub = kbs;
valueBeanStub = vbs;
}
static
{
Types types;
types = new Types(1, "TestTable", null, TestType.BEAN_STUB);
idTypes.put(1, types);
nameTypes.put("TestTable", types);
types = new Types(2, "BeanTable", TestKeyBean.BEAN_STUB, TestBean.BEAN_STUB);
idTypes.put(2, types);
nameTypes.put("BeanTable", types);
types = new Types(3, "OctetsTable", null, TestEmpty.BEAN_STUB);
idTypes.put(3, types);
nameTypes.put("OctetsTable", types);
types = new Types(4, "Benchmark", null, TestBean.BEAN_STUB);
idTypes.put(4, types);
nameTypes.put("Benchmark", types);
}
public static Types getTypes(int tableId)
{
return idTypes.get(tableId);
}
public static Types getTypes(String tableName)
{
return nameTypes.get(tableName);
}
}
}