public static synchronized void registerDaoWithTableConfig(ConnectionSource connectionSource, Dao<?, ?> dao) {
		if (connectionSource == null) {
			throw new IllegalArgumentException("connectionSource argument cannot be null");
		}
		if (dao instanceof BaseDaoImpl) {
			DatabaseTableConfig<?> tableConfig = ((BaseDaoImpl<?, ?>) dao).getTableConfig();
			if (tableConfig != null) {
				addDaoToTableMap(new TableConfigConnectionSource(connectionSource, tableConfig), dao);
				return;
			}
		}
		addDaoToClassMap(new ClassConnectionSource(connectionSource, dao.getDataClass()), dao);
	}