class TableInfo {

	public T createObject() throws SQLException {
		try {
			T instance;
			ObjectFactory<T> factory = null;
			if (baseDaoImpl != null) {
				factory = baseDaoImpl.getObjectFactory();
			}
			if (factory == null) {
				instance = constructor.newInstance();
			} else {
				instance = factory.createObject(constructor, baseDaoImpl.getDataClass());
			}
			wireNewInstance(baseDaoImpl, instance);
			return instance;
		} catch (Exception e) {
			throw SqlExceptionUtil.create("Could not create object for " + constructor.getDeclaringClass(), e);
		}
	}

	public  TableInfo(ConnectionSource connectionSource, BaseDaoImpl<T, ID> baseDaoImpl, Class<T> dataClass);
	public  TableInfo(DatabaseType databaseType, BaseDaoImpl<T, ID> baseDaoImpl, DatabaseTableConfig<T> tableConfig);

}