package com.cc.infosur.greendao;

import android.database.sqlite.SQLiteDatabase;

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 travellerInfoDaoConfig;
    private final DaoConfig parkInfoDaoConfig;
    private final DaoConfig monthOpeningTimeDaoConfig;
    private final DaoConfig tripInfoDaoConfig;
    private final DaoConfig tripDaoConfig;
    private final DaoConfig userPicturesDaoConfig;
    private final DaoConfig dayDaoConfig;
    private final DaoConfig stepDaoConfig;
    private final DaoConfig excursionDaoConfig;
    private final DaoConfig serviceDaoConfig;
    private final DaoConfig detailDaoConfig;
    private final DaoConfig dayServiceRelDaoConfig;
    private final DaoConfig questionaryDaoConfig;
    private final DaoConfig questionDaoConfig;
    private final DaoConfig observationDaoConfig;
    private final DaoConfig chatDaoConfig;
    private final DaoConfig dangerousDaoConfig;
    private final DaoConfig alertDaoConfig;
    private final DaoConfig floraDaoConfig;
    private final DaoConfig faunaDaoConfig;
    private final DaoConfig heritageDaoConfig;
    private final DaoConfig dbPolygonDaoConfig;
    private final DaoConfig dbLineDaoConfig;
    private final DaoConfig dbPointDaoConfig;
    private final DaoConfig nodeDaoConfig;
    private final DaoConfig linkDaoConfig;
    private final DaoConfig requestDaoConfig;


    private final TravellerInfoDao travellerInfoDao;
    private final ParkInfoDao parkInfoDao;
    private final MonthOpeningTimeDao monthOpeningTimeDao;
    private final TripInfoDao tripInfoDao;
    private final TripDao tripDao;
    private final UserPicturesDao userPicturesDao;
    private final DayDao dayDao;
    private final StepDao stepDao;
    private final ExcursionDao excursionDao;
    private final ServiceDao serviceDao;
    private final DetailDao detailDao;
    private final DayServiceRelDao dayServiceRelDao;
    private final QuestionaryDao questionaryDao;
    private final QuestionDao questionDao;
    private final ObservationDao observationDao;
    private final ChatDao chatDao;
    private final DangerousDao dangerousDao;
    private final AlertDao alertDao;
    private final FloraDao floraDao;
    private final FaunaDao faunaDao;
    private final HeritageDao heritageDao;
    private final DbPolygonDao dbPolygonDao;
    private final DbLineDao dbLineDao;
    private final DbPointDao dbPointDao;
    private final NodeDao nodeDao;
    private final LinkDao linkDao;
    private final RequestDao requestDao;


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

        travellerInfoDaoConfig = daoConfigMap.get(TravellerInfoDao.class).clone();
        travellerInfoDaoConfig.initIdentityScope(type);

        parkInfoDaoConfig = daoConfigMap.get(ParkInfoDao.class).clone();
        parkInfoDaoConfig.initIdentityScope(type);

        monthOpeningTimeDaoConfig = daoConfigMap.get(MonthOpeningTimeDao.class).clone();
        monthOpeningTimeDaoConfig.initIdentityScope(type);

        tripInfoDaoConfig = daoConfigMap.get(TripInfoDao.class).clone();
        tripInfoDaoConfig.initIdentityScope(type);

        tripDaoConfig = daoConfigMap.get(TripDao.class).clone();
        tripDaoConfig.initIdentityScope(type);

        userPicturesDaoConfig = daoConfigMap.get(UserPicturesDao.class).clone();
        userPicturesDaoConfig.initIdentityScope(type);

        dayDaoConfig = daoConfigMap.get(DayDao.class).clone();
        dayDaoConfig.initIdentityScope(type);

        stepDaoConfig = daoConfigMap.get(StepDao.class).clone();
        stepDaoConfig.initIdentityScope(type);

        excursionDaoConfig = daoConfigMap.get(ExcursionDao.class).clone();
        excursionDaoConfig.initIdentityScope(type);

        serviceDaoConfig = daoConfigMap.get(ServiceDao.class).clone();
        serviceDaoConfig.initIdentityScope(type);

        detailDaoConfig = daoConfigMap.get(DetailDao.class).clone();
        detailDaoConfig.initIdentityScope(type);

        dayServiceRelDaoConfig = daoConfigMap.get(DayServiceRelDao.class).clone();
        dayServiceRelDaoConfig.initIdentityScope(type);

        questionaryDaoConfig = daoConfigMap.get(QuestionaryDao.class).clone();
        questionaryDaoConfig.initIdentityScope(type);

        questionDaoConfig = daoConfigMap.get(QuestionDao.class).clone();
        questionDaoConfig.initIdentityScope(type);

        observationDaoConfig = daoConfigMap.get(ObservationDao.class).clone();
        observationDaoConfig.initIdentityScope(type);

        chatDaoConfig = daoConfigMap.get(ChatDao.class).clone();
        chatDaoConfig.initIdentityScope(type);

        dangerousDaoConfig = daoConfigMap.get(DangerousDao.class).clone();
        dangerousDaoConfig.initIdentityScope(type);

        alertDaoConfig = daoConfigMap.get(AlertDao.class).clone();
        alertDaoConfig.initIdentityScope(type);

        floraDaoConfig = daoConfigMap.get(FloraDao.class).clone();
        floraDaoConfig.initIdentityScope(type);

        faunaDaoConfig = daoConfigMap.get(FaunaDao.class).clone();
        faunaDaoConfig.initIdentityScope(type);

        heritageDaoConfig = daoConfigMap.get(HeritageDao.class).clone();
        heritageDaoConfig.initIdentityScope(type);

        dbPolygonDaoConfig = daoConfigMap.get(DbPolygonDao.class).clone();
        dbPolygonDaoConfig.initIdentityScope(type);

        dbLineDaoConfig = daoConfigMap.get(DbLineDao.class).clone();
        dbLineDaoConfig.initIdentityScope(type);

        dbPointDaoConfig = daoConfigMap.get(DbPointDao.class).clone();
        dbPointDaoConfig.initIdentityScope(type);

        nodeDaoConfig = daoConfigMap.get(NodeDao.class).clone();
        nodeDaoConfig.initIdentityScope(type);

        linkDaoConfig = daoConfigMap.get(LinkDao.class).clone();
        linkDaoConfig.initIdentityScope(type);

        requestDaoConfig = daoConfigMap.get(RequestDao.class).clone();
        requestDaoConfig.initIdentityScope(type);


        travellerInfoDao = new TravellerInfoDao(travellerInfoDaoConfig, this);
        parkInfoDao = new ParkInfoDao(parkInfoDaoConfig, this);
        monthOpeningTimeDao = new MonthOpeningTimeDao(monthOpeningTimeDaoConfig, this);
        tripInfoDao = new TripInfoDao(tripInfoDaoConfig, this);
        tripDao = new TripDao(tripDaoConfig, this);
        userPicturesDao = new UserPicturesDao(userPicturesDaoConfig, this);
        dayDao = new DayDao(dayDaoConfig, this);
        stepDao = new StepDao(stepDaoConfig, this);
        excursionDao = new ExcursionDao(excursionDaoConfig, this);
        serviceDao = new ServiceDao(serviceDaoConfig, this);
        detailDao = new DetailDao(detailDaoConfig, this);
        dayServiceRelDao = new DayServiceRelDao(dayServiceRelDaoConfig, this);
        questionaryDao = new QuestionaryDao(questionaryDaoConfig, this);
        questionDao = new QuestionDao(questionDaoConfig, this);
        observationDao = new ObservationDao(observationDaoConfig, this);
        chatDao = new ChatDao(chatDaoConfig, this);
        dangerousDao = new DangerousDao(dangerousDaoConfig, this);
        alertDao = new AlertDao(alertDaoConfig, this);
        floraDao = new FloraDao(floraDaoConfig, this);
        faunaDao = new FaunaDao(faunaDaoConfig, this);
        heritageDao = new HeritageDao(heritageDaoConfig, this);
        dbPolygonDao = new DbPolygonDao(dbPolygonDaoConfig, this);
        dbLineDao = new DbLineDao(dbLineDaoConfig, this);
        dbPointDao = new DbPointDao(dbPointDaoConfig, this);
        nodeDao = new NodeDao(nodeDaoConfig, this);
        linkDao = new LinkDao(linkDaoConfig, this);
        requestDao = new RequestDao(requestDaoConfig, this);


        registerDao(TravellerInfo.class, travellerInfoDao);
        registerDao(ParkInfo.class, parkInfoDao);
        registerDao(MonthOpeningTime.class, monthOpeningTimeDao);
        registerDao(TripInfo.class, tripInfoDao);
        registerDao(Trip.class, tripDao);
        registerDao(UserPictures.class, userPicturesDao);
        registerDao(Day.class, dayDao);
        registerDao(Step.class, stepDao);
        registerDao(Excursion.class, excursionDao);
        registerDao(Service.class, serviceDao);
        registerDao(Detail.class, detailDao);
        registerDao(DayServiceRel.class, dayServiceRelDao);
        registerDao(Questionary.class, questionaryDao);
        registerDao(Question.class, questionDao);
        registerDao(Observation.class, observationDao);
        registerDao(Chat.class, chatDao);
        registerDao(Dangerous.class, dangerousDao);
        registerDao(Alert.class, alertDao);
        registerDao(Flora.class, floraDao);
        registerDao(Fauna.class, faunaDao);
        registerDao(Heritage.class, heritageDao);
        registerDao(DbPolygon.class, dbPolygonDao);
        registerDao(DbLine.class, dbLineDao);
        registerDao(DbPoint.class, dbPointDao);
        registerDao(Node.class, nodeDao);
        registerDao(Link.class, linkDao);
        registerDao(Request.class, requestDao);
    }
    
    public void clear() {
        travellerInfoDaoConfig.getIdentityScope().clear();
        parkInfoDaoConfig.getIdentityScope().clear();
        monthOpeningTimeDaoConfig.getIdentityScope().clear();
        tripInfoDaoConfig.getIdentityScope().clear();
        tripDaoConfig.getIdentityScope().clear();
        userPicturesDaoConfig.getIdentityScope().clear();
        dayDaoConfig.getIdentityScope().clear();
        stepDaoConfig.getIdentityScope().clear();
        excursionDaoConfig.getIdentityScope().clear();
        serviceDaoConfig.getIdentityScope().clear();
        detailDaoConfig.getIdentityScope().clear();
        dayServiceRelDaoConfig.getIdentityScope().clear();
        questionaryDaoConfig.getIdentityScope().clear();
        questionDaoConfig.getIdentityScope().clear();
        observationDaoConfig.getIdentityScope().clear();
        chatDaoConfig.getIdentityScope().clear();
        dangerousDaoConfig.getIdentityScope().clear();
        alertDaoConfig.getIdentityScope().clear();
        floraDaoConfig.getIdentityScope().clear();
        faunaDaoConfig.getIdentityScope().clear();
        heritageDaoConfig.getIdentityScope().clear();
        dbPolygonDaoConfig.getIdentityScope().clear();
        dbLineDaoConfig.getIdentityScope().clear();
        dbPointDaoConfig.getIdentityScope().clear();
        nodeDaoConfig.getIdentityScope().clear();
        linkDaoConfig.getIdentityScope().clear();
        requestDaoConfig.getIdentityScope().clear();

    }

    public TravellerInfoDao getTravellerInfoDao() {
        return travellerInfoDao;
    }

    public ParkInfoDao getParkInfoDao() {
        return parkInfoDao;
    }

    public MonthOpeningTimeDao getMonthOpeningTimeDao() {
        return monthOpeningTimeDao;
    }

    public TripInfoDao getTripInfoDao() {
        return tripInfoDao;
    }

    public TripDao getTripDao() {
        return tripDao;
    }

    public UserPicturesDao getUserPicturesDao() {
        return userPicturesDao;
    }

    public DayDao getDayDao() {
        return dayDao;
    }

    public StepDao getStepDao() {
        return stepDao;
    }

    public ExcursionDao getExcursionDao() {
        return excursionDao;
    }

    public ServiceDao getServiceDao() {
        return serviceDao;
    }

    public DetailDao getDetailDao() {
        return detailDao;
    }

    public DayServiceRelDao getDayServiceRelDao() {
        return dayServiceRelDao;
    }

    public QuestionaryDao getQuestionaryDao() {
        return questionaryDao;
    }

    public QuestionDao getQuestionDao() {
        return questionDao;
    }

    public ObservationDao getObservationDao() {
        return observationDao;
    }

    public ChatDao getChatDao() {
        return chatDao;
    }

    public DangerousDao getDangerousDao() {
        return dangerousDao;
    }

    public AlertDao getAlertDao() {
        return alertDao;
    }

    public FloraDao getFloraDao() {
        return floraDao;
    }

    public FaunaDao getFaunaDao() {
        return faunaDao;
    }

    public HeritageDao getHeritageDao() {
        return heritageDao;
    }

    public DbPolygonDao getDbPolygonDao() {
        return dbPolygonDao;
    }

    public DbLineDao getDbLineDao() {
        return dbLineDao;
    }

    public DbPointDao getDbPointDao() {
        return dbPointDao;
    }

    public NodeDao getNodeDao() {
        return nodeDao;
    }

    public LinkDao getLinkDao() {
        return linkDao;
    }

    public RequestDao getRequestDao() {
        return requestDao;
    }

}
