package com.d.music.data.database.greendao.dao;

import android.database.sqlite.SQLiteDatabase;

import com.d.music.data.database.greendao.bean.CustomListModel;
import com.d.music.data.database.greendao.bean.MusicModel;
import com.d.music.data.database.greendao.bean.TransferModel;

import java.util.Map;

import de.greenrobot.dao.AbstractDao;
import de.greenrobot.dao.AbstractDaoSession;
import de.greenrobot.dao.identityscope.IdentityScopeType;
import de.greenrobot.dao.internal.DaoConfig;

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

/**
 * {@inheritDoc}
 *
 * @see de.greenrobot.dao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig musicModelDaoConfig;
    private final DaoConfig localAllMusicDaoConfig;
    private final DaoConfig collectionMusicDaoConfig;
    private final DaoConfig customListModelDaoConfig;
    private final DaoConfig customMusic0DaoConfig;
    private final DaoConfig customMusic1DaoConfig;
    private final DaoConfig customMusic2DaoConfig;
    private final DaoConfig customMusic3DaoConfig;
    private final DaoConfig customMusic4DaoConfig;
    private final DaoConfig customMusic5DaoConfig;
    private final DaoConfig customMusic6DaoConfig;
    private final DaoConfig customMusic7DaoConfig;
    private final DaoConfig customMusic8DaoConfig;
    private final DaoConfig customMusic9DaoConfig;
    private final DaoConfig customMusic10DaoConfig;
    private final DaoConfig customMusic11DaoConfig;
    private final DaoConfig customMusic12DaoConfig;
    private final DaoConfig customMusic13DaoConfig;
    private final DaoConfig customMusic14DaoConfig;
    private final DaoConfig customMusic15DaoConfig;
    private final DaoConfig customMusic16DaoConfig;
    private final DaoConfig customMusic17DaoConfig;
    private final DaoConfig customMusic18DaoConfig;
    private final DaoConfig customMusic19DaoConfig;
    private final DaoConfig transferModelDaoConfig;

    private final MusicModelDao musicModelDao;
    private final LocalAllMusicDao localAllMusicDao;
    private final CollectionMusicDao collectionMusicDao;
    private final CustomListModelDao customListModelDao;
    private final CustomMusic0Dao customMusic0Dao;
    private final CustomMusic1Dao customMusic1Dao;
    private final CustomMusic2Dao customMusic2Dao;
    private final CustomMusic3Dao customMusic3Dao;
    private final CustomMusic4Dao customMusic4Dao;
    private final CustomMusic5Dao customMusic5Dao;
    private final CustomMusic6Dao customMusic6Dao;
    private final CustomMusic7Dao customMusic7Dao;
    private final CustomMusic8Dao customMusic8Dao;
    private final CustomMusic9Dao customMusic9Dao;
    private final CustomMusic10Dao customMusic10Dao;
    private final CustomMusic11Dao customMusic11Dao;
    private final CustomMusic12Dao customMusic12Dao;
    private final CustomMusic13Dao customMusic13Dao;
    private final CustomMusic14Dao customMusic14Dao;
    private final CustomMusic15Dao customMusic15Dao;
    private final CustomMusic16Dao customMusic16Dao;
    private final CustomMusic17Dao customMusic17Dao;
    private final CustomMusic18Dao customMusic18Dao;
    private final CustomMusic19Dao customMusic19Dao;
    private final TransferModelDao transferModelDao;

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

        musicModelDaoConfig = daoConfigMap.get(MusicModelDao.class).clone();
        musicModelDaoConfig.initIdentityScope(type);

        localAllMusicDaoConfig = daoConfigMap.get(LocalAllMusicDao.class).clone();
        localAllMusicDaoConfig.initIdentityScope(type);

        collectionMusicDaoConfig = daoConfigMap.get(CollectionMusicDao.class).clone();
        collectionMusicDaoConfig.initIdentityScope(type);

        customListModelDaoConfig = daoConfigMap.get(CustomListModelDao.class).clone();
        customListModelDaoConfig.initIdentityScope(type);

        customMusic0DaoConfig = daoConfigMap.get(CustomMusic0Dao.class).clone();
        customMusic0DaoConfig.initIdentityScope(type);

        customMusic1DaoConfig = daoConfigMap.get(CustomMusic1Dao.class).clone();
        customMusic1DaoConfig.initIdentityScope(type);

        customMusic2DaoConfig = daoConfigMap.get(CustomMusic2Dao.class).clone();
        customMusic2DaoConfig.initIdentityScope(type);

        customMusic3DaoConfig = daoConfigMap.get(CustomMusic3Dao.class).clone();
        customMusic3DaoConfig.initIdentityScope(type);

        customMusic4DaoConfig = daoConfigMap.get(CustomMusic4Dao.class).clone();
        customMusic4DaoConfig.initIdentityScope(type);

        customMusic5DaoConfig = daoConfigMap.get(CustomMusic5Dao.class).clone();
        customMusic5DaoConfig.initIdentityScope(type);

        customMusic6DaoConfig = daoConfigMap.get(CustomMusic6Dao.class).clone();
        customMusic6DaoConfig.initIdentityScope(type);

        customMusic7DaoConfig = daoConfigMap.get(CustomMusic7Dao.class).clone();
        customMusic7DaoConfig.initIdentityScope(type);

        customMusic8DaoConfig = daoConfigMap.get(CustomMusic8Dao.class).clone();
        customMusic8DaoConfig.initIdentityScope(type);

        customMusic9DaoConfig = daoConfigMap.get(CustomMusic9Dao.class).clone();
        customMusic9DaoConfig.initIdentityScope(type);

        customMusic10DaoConfig = daoConfigMap.get(CustomMusic10Dao.class).clone();
        customMusic10DaoConfig.initIdentityScope(type);

        customMusic11DaoConfig = daoConfigMap.get(CustomMusic11Dao.class).clone();
        customMusic11DaoConfig.initIdentityScope(type);

        customMusic12DaoConfig = daoConfigMap.get(CustomMusic12Dao.class).clone();
        customMusic12DaoConfig.initIdentityScope(type);

        customMusic13DaoConfig = daoConfigMap.get(CustomMusic13Dao.class).clone();
        customMusic13DaoConfig.initIdentityScope(type);

        customMusic14DaoConfig = daoConfigMap.get(CustomMusic14Dao.class).clone();
        customMusic14DaoConfig.initIdentityScope(type);

        customMusic15DaoConfig = daoConfigMap.get(CustomMusic15Dao.class).clone();
        customMusic15DaoConfig.initIdentityScope(type);

        customMusic16DaoConfig = daoConfigMap.get(CustomMusic16Dao.class).clone();
        customMusic16DaoConfig.initIdentityScope(type);

        customMusic17DaoConfig = daoConfigMap.get(CustomMusic17Dao.class).clone();
        customMusic17DaoConfig.initIdentityScope(type);

        customMusic18DaoConfig = daoConfigMap.get(CustomMusic18Dao.class).clone();
        customMusic18DaoConfig.initIdentityScope(type);

        customMusic19DaoConfig = daoConfigMap.get(CustomMusic19Dao.class).clone();
        customMusic19DaoConfig.initIdentityScope(type);

        transferModelDaoConfig = daoConfigMap.get(TransferModelDao.class).clone();
        transferModelDaoConfig.initIdentityScope(type);

        musicModelDao = new MusicModelDao(musicModelDaoConfig, this);
        localAllMusicDao = new LocalAllMusicDao(localAllMusicDaoConfig, this);
        collectionMusicDao = new CollectionMusicDao(collectionMusicDaoConfig, this);
        customListModelDao = new CustomListModelDao(customListModelDaoConfig, this);
        customMusic0Dao = new CustomMusic0Dao(customMusic0DaoConfig, this);
        customMusic1Dao = new CustomMusic1Dao(customMusic1DaoConfig, this);
        customMusic2Dao = new CustomMusic2Dao(customMusic2DaoConfig, this);
        customMusic3Dao = new CustomMusic3Dao(customMusic3DaoConfig, this);
        customMusic4Dao = new CustomMusic4Dao(customMusic4DaoConfig, this);
        customMusic5Dao = new CustomMusic5Dao(customMusic5DaoConfig, this);
        customMusic6Dao = new CustomMusic6Dao(customMusic6DaoConfig, this);
        customMusic7Dao = new CustomMusic7Dao(customMusic7DaoConfig, this);
        customMusic8Dao = new CustomMusic8Dao(customMusic8DaoConfig, this);
        customMusic9Dao = new CustomMusic9Dao(customMusic9DaoConfig, this);
        customMusic10Dao = new CustomMusic10Dao(customMusic10DaoConfig, this);
        customMusic11Dao = new CustomMusic11Dao(customMusic11DaoConfig, this);
        customMusic12Dao = new CustomMusic12Dao(customMusic12DaoConfig, this);
        customMusic13Dao = new CustomMusic13Dao(customMusic13DaoConfig, this);
        customMusic14Dao = new CustomMusic14Dao(customMusic14DaoConfig, this);
        customMusic15Dao = new CustomMusic15Dao(customMusic15DaoConfig, this);
        customMusic16Dao = new CustomMusic16Dao(customMusic16DaoConfig, this);
        customMusic17Dao = new CustomMusic17Dao(customMusic17DaoConfig, this);
        customMusic18Dao = new CustomMusic18Dao(customMusic18DaoConfig, this);
        customMusic19Dao = new CustomMusic19Dao(customMusic19DaoConfig, this);
        transferModelDao = new TransferModelDao(transferModelDaoConfig, this);

        registerDao(MusicModel.class, musicModelDao);
        registerDao(CustomListModel.class, customListModelDao);
        registerDao(TransferModel.class, transferModelDao);
    }

    public void clear() {
        musicModelDaoConfig.getIdentityScope().clear();
        localAllMusicDaoConfig.getIdentityScope().clear();
        collectionMusicDaoConfig.getIdentityScope().clear();
        customListModelDaoConfig.getIdentityScope().clear();
        customMusic0DaoConfig.getIdentityScope().clear();
        customMusic1DaoConfig.getIdentityScope().clear();
        customMusic2DaoConfig.getIdentityScope().clear();
        customMusic3DaoConfig.getIdentityScope().clear();
        customMusic4DaoConfig.getIdentityScope().clear();
        customMusic5DaoConfig.getIdentityScope().clear();
        customMusic6DaoConfig.getIdentityScope().clear();
        customMusic7DaoConfig.getIdentityScope().clear();
        customMusic8DaoConfig.getIdentityScope().clear();
        customMusic9DaoConfig.getIdentityScope().clear();
        customMusic10DaoConfig.getIdentityScope().clear();
        customMusic11DaoConfig.getIdentityScope().clear();
        customMusic12DaoConfig.getIdentityScope().clear();
        customMusic13DaoConfig.getIdentityScope().clear();
        customMusic14DaoConfig.getIdentityScope().clear();
        customMusic15DaoConfig.getIdentityScope().clear();
        customMusic16DaoConfig.getIdentityScope().clear();
        customMusic17DaoConfig.getIdentityScope().clear();
        customMusic18DaoConfig.getIdentityScope().clear();
        customMusic19DaoConfig.getIdentityScope().clear();
        transferModelDaoConfig.getIdentityScope().clear();
    }

    public MusicModelDao getMusicModelDao() {
        return musicModelDao;
    }

    public LocalAllMusicDao getLocalAllMusicDao() {
        return localAllMusicDao;
    }

    public CollectionMusicDao getCollectionMusicDao() {
        return collectionMusicDao;
    }

    public CustomListModelDao getCustomListModelDao() {
        return customListModelDao;
    }

    public CustomMusic0Dao getCustomMusic0Dao() {
        return customMusic0Dao;
    }

    public CustomMusic1Dao getCustomMusic1Dao() {
        return customMusic1Dao;
    }

    public CustomMusic2Dao getCustomMusic2Dao() {
        return customMusic2Dao;
    }

    public CustomMusic3Dao getCustomMusic3Dao() {
        return customMusic3Dao;
    }

    public CustomMusic4Dao getCustomMusic4Dao() {
        return customMusic4Dao;
    }

    public CustomMusic5Dao getCustomMusic5Dao() {
        return customMusic5Dao;
    }

    public CustomMusic6Dao getCustomMusic6Dao() {
        return customMusic6Dao;
    }

    public CustomMusic7Dao getCustomMusic7Dao() {
        return customMusic7Dao;
    }

    public CustomMusic8Dao getCustomMusic8Dao() {
        return customMusic8Dao;
    }

    public CustomMusic9Dao getCustomMusic9Dao() {
        return customMusic9Dao;
    }

    public CustomMusic10Dao getCustomMusic10Dao() {
        return customMusic10Dao;
    }

    public CustomMusic11Dao getCustomMusic11Dao() {
        return customMusic11Dao;
    }

    public CustomMusic12Dao getCustomMusic12Dao() {
        return customMusic12Dao;
    }

    public CustomMusic13Dao getCustomMusic13Dao() {
        return customMusic13Dao;
    }

    public CustomMusic14Dao getCustomMusic14Dao() {
        return customMusic14Dao;
    }

    public CustomMusic15Dao getCustomMusic15Dao() {
        return customMusic15Dao;
    }

    public CustomMusic16Dao getCustomMusic16Dao() {
        return customMusic16Dao;
    }

    public CustomMusic17Dao getCustomMusic17Dao() {
        return customMusic17Dao;
    }

    public CustomMusic18Dao getCustomMusic18Dao() {
        return customMusic18Dao;
    }

    public CustomMusic19Dao getCustomMusic19Dao() {
        return customMusic19Dao;
    }

    public TransferModelDao getTransferModelDao() {
        return transferModelDao;
    }

}
