package com.liquidnet.service.merchant.util;

import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.kylin.dao.PerformancePartnerListDao;
import com.liquidnet.service.kylin.dto.vo.partner.KylinPerformancePartnerListVo;
import com.liquidnet.service.kylin.dto.vo.partner.TicketTimesTicketCreatePartnerVo;
import com.liquidnet.service.merchant.dto.vo.*;
import com.mongodb.BasicDBObject;

import java.util.ArrayList;

public class ObjectUtil {
    private static final ArrayList<MerchantStationsVo> merchantStationsVosArrayList = new ArrayList<>();

    private static final ArrayList<MerchantFieldAppliesVo> merchantFieldAppliesVoArrayList = new ArrayList<>();
    private static final ArrayList<MerchantFieldCheckersVo> merchantFieldCheckersVoArrayList = new ArrayList<>();

    private static final ArrayList<MerchantSponsorAppliesVo> merchantSponsorAppliesVoArrayList = new ArrayList<>();

    private static final PagedResult<MerchantFieldsVo> merchantFieldsVoPagedResult = new PagedResult<>();

    private static final PagedResult<MerchantSponsorsVo> merchantSponsorsVoPagedResult = new PagedResult<>();

    private static final BasicDBObject basicDBObject = new BasicDBObject();


    private static final ArrayList<PerformancePartnerListDao> performancePartnerListDaoArrayList = new ArrayList<>();
    private static final ArrayList<TicketTimesTicketCreatePartnerVo> ticketTimesTicketCreatePartnerVoList = new ArrayList<>();
    private static final ArrayList<KylinPerformancePartnerListVo> performancePartnerListVo = new ArrayList<>();
    private static final ArrayList<MerchantAuthorizationPerformanceVo> permissionVoList = new ArrayList<>();

    public static ArrayList<PerformancePartnerListDao> getPerformancePartnerListDaoArrayList() {
        return (ArrayList<PerformancePartnerListDao>) performancePartnerListDaoArrayList.clone();
    }

    public static ArrayList<MerchantAuthorizationPerformanceVo> getPermissionVoList() {
        return (ArrayList<MerchantAuthorizationPerformanceVo>) permissionVoList.clone();
    }

    public static ArrayList<KylinPerformancePartnerListVo> getKylinPerformancePartnerListVo() {
        return (ArrayList<KylinPerformancePartnerListVo>) performancePartnerListVo.clone();
    }

    public static ArrayList<TicketTimesTicketCreatePartnerVo> getTicketTimesTicketCreatePartnerVoList() {
        return (ArrayList<TicketTimesTicketCreatePartnerVo>) ticketTimesTicketCreatePartnerVoList.clone();
    }

    public static ArrayList<MerchantStationsVo> getMerchantStationsVosArrayList() {
        return (ArrayList<MerchantStationsVo>) merchantStationsVosArrayList.clone();
    }

    public static ArrayList<MerchantFieldAppliesVo> getMerchantFieldAppliesVoArrayList() {
        return (ArrayList<MerchantFieldAppliesVo>) merchantFieldAppliesVoArrayList.clone();
    }

    public static ArrayList<MerchantFieldCheckersVo> getMerchantFieldCheckersVoArrayList() {
        return (ArrayList<MerchantFieldCheckersVo>) merchantFieldCheckersVoArrayList.clone();
    }

    public static PagedResult<MerchantFieldsVo> getMerchantFieldsVoPagedResult() {
        return merchantFieldsVoPagedResult.clone();
    }

    public static PagedResult<MerchantSponsorsVo> getMerchantSponsorsVoPagedResult() {
        return merchantSponsorsVoPagedResult.clone();
    }

    public static ArrayList<MerchantSponsorAppliesVo> getMerchantSponsorAppliesVoArrayList() {
        return (ArrayList<MerchantSponsorAppliesVo>) merchantSponsorAppliesVoArrayList.clone();
    }

    public static BasicDBObject cloneBasicDBObject() {
        return (BasicDBObject) basicDBObject.clone();
    }
}
