package com.sheep.gamegroup.greendao.download;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.sheep.gamegroup.greendao.download.AcceptTaskRecord;
import com.sheep.gamegroup.greendao.download.Account;
import com.sheep.gamegroup.greendao.download.AppdownloadBean;
import com.sheep.gamegroup.greendao.download.DownLoadInfo;
import com.sheep.gamegroup.greendao.download.ProcessRecord;
import com.sheep.gamegroup.greendao.download.ScreenShotRecord;
import com.sheep.gamegroup.greendao.download.SdkLoginUser;
import com.sheep.gamegroup.greendao.download.SearchRecord;

import com.sheep.gamegroup.greendao.download.AcceptTaskRecordDao;
import com.sheep.gamegroup.greendao.download.AccountDao;
import com.sheep.gamegroup.greendao.download.AppdownloadBeanDao;
import com.sheep.gamegroup.greendao.download.DownLoadInfoDao;
import com.sheep.gamegroup.greendao.download.ProcessRecordDao;
import com.sheep.gamegroup.greendao.download.ScreenShotRecordDao;
import com.sheep.gamegroup.greendao.download.SdkLoginUserDao;
import com.sheep.gamegroup.greendao.download.SearchRecordDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig acceptTaskRecordDaoConfig;
    private final DaoConfig accountDaoConfig;
    private final DaoConfig appdownloadBeanDaoConfig;
    private final DaoConfig downLoadInfoDaoConfig;
    private final DaoConfig processRecordDaoConfig;
    private final DaoConfig screenShotRecordDaoConfig;
    private final DaoConfig sdkLoginUserDaoConfig;
    private final DaoConfig searchRecordDaoConfig;

    private final AcceptTaskRecordDao acceptTaskRecordDao;
    private final AccountDao accountDao;
    private final AppdownloadBeanDao appdownloadBeanDao;
    private final DownLoadInfoDao downLoadInfoDao;
    private final ProcessRecordDao processRecordDao;
    private final ScreenShotRecordDao screenShotRecordDao;
    private final SdkLoginUserDao sdkLoginUserDao;
    private final SearchRecordDao searchRecordDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        acceptTaskRecordDaoConfig = daoConfigMap.get(AcceptTaskRecordDao.class).clone();
        acceptTaskRecordDaoConfig.initIdentityScope(type);

        accountDaoConfig = daoConfigMap.get(AccountDao.class).clone();
        accountDaoConfig.initIdentityScope(type);

        appdownloadBeanDaoConfig = daoConfigMap.get(AppdownloadBeanDao.class).clone();
        appdownloadBeanDaoConfig.initIdentityScope(type);

        downLoadInfoDaoConfig = daoConfigMap.get(DownLoadInfoDao.class).clone();
        downLoadInfoDaoConfig.initIdentityScope(type);

        processRecordDaoConfig = daoConfigMap.get(ProcessRecordDao.class).clone();
        processRecordDaoConfig.initIdentityScope(type);

        screenShotRecordDaoConfig = daoConfigMap.get(ScreenShotRecordDao.class).clone();
        screenShotRecordDaoConfig.initIdentityScope(type);

        sdkLoginUserDaoConfig = daoConfigMap.get(SdkLoginUserDao.class).clone();
        sdkLoginUserDaoConfig.initIdentityScope(type);

        searchRecordDaoConfig = daoConfigMap.get(SearchRecordDao.class).clone();
        searchRecordDaoConfig.initIdentityScope(type);

        acceptTaskRecordDao = new AcceptTaskRecordDao(acceptTaskRecordDaoConfig, this);
        accountDao = new AccountDao(accountDaoConfig, this);
        appdownloadBeanDao = new AppdownloadBeanDao(appdownloadBeanDaoConfig, this);
        downLoadInfoDao = new DownLoadInfoDao(downLoadInfoDaoConfig, this);
        processRecordDao = new ProcessRecordDao(processRecordDaoConfig, this);
        screenShotRecordDao = new ScreenShotRecordDao(screenShotRecordDaoConfig, this);
        sdkLoginUserDao = new SdkLoginUserDao(sdkLoginUserDaoConfig, this);
        searchRecordDao = new SearchRecordDao(searchRecordDaoConfig, this);

        registerDao(AcceptTaskRecord.class, acceptTaskRecordDao);
        registerDao(Account.class, accountDao);
        registerDao(AppdownloadBean.class, appdownloadBeanDao);
        registerDao(DownLoadInfo.class, downLoadInfoDao);
        registerDao(ProcessRecord.class, processRecordDao);
        registerDao(ScreenShotRecord.class, screenShotRecordDao);
        registerDao(SdkLoginUser.class, sdkLoginUserDao);
        registerDao(SearchRecord.class, searchRecordDao);
    }
    
    public void clear() {
        acceptTaskRecordDaoConfig.clearIdentityScope();
        accountDaoConfig.clearIdentityScope();
        appdownloadBeanDaoConfig.clearIdentityScope();
        downLoadInfoDaoConfig.clearIdentityScope();
        processRecordDaoConfig.clearIdentityScope();
        screenShotRecordDaoConfig.clearIdentityScope();
        sdkLoginUserDaoConfig.clearIdentityScope();
        searchRecordDaoConfig.clearIdentityScope();
    }

    public AcceptTaskRecordDao getAcceptTaskRecordDao() {
        return acceptTaskRecordDao;
    }

    public AccountDao getAccountDao() {
        return accountDao;
    }

    public AppdownloadBeanDao getAppdownloadBeanDao() {
        return appdownloadBeanDao;
    }

    public DownLoadInfoDao getDownLoadInfoDao() {
        return downLoadInfoDao;
    }

    public ProcessRecordDao getProcessRecordDao() {
        return processRecordDao;
    }

    public ScreenShotRecordDao getScreenShotRecordDao() {
        return screenShotRecordDao;
    }

    public SdkLoginUserDao getSdkLoginUserDao() {
        return sdkLoginUserDao;
    }

    public SearchRecordDao getSearchRecordDao() {
        return searchRecordDao;
    }

}
