public function checkCompatibility($visitorId, Pap_Tracking_Visit_VisitorAffiliateCache $cache) {
        $rows = $cache->getVisitorAffiliateAllRows($visitorId);

        if ($this->isVisitorAffiliatesCollectionValid($rows)) {
            return;
        }

        if ($rows->getSize() == 1) {
            $rows->get(0)->setActual();
            return;
        }

        Pap_Tracking_Visit_VisitorAffiliateCache::sortVisitorAffiliatesByDateVisit($rows);

        $rows->correctIndexes();

        for ($i=1, $size = $rows->getSize();$i<$size-1;$i++) {
            $cache->removeVisitorAffiliate($rows->get($i)->getId());
            $rows->remove($i);
        }

        $rows->correctIndexes();

        $campaign = $this->getCampaignById($rows->get(1)->getCampaignId());
        $user = $this->getUserById($rows->get(1)->getUserId());

        if ($this->cookieObject->isOverwriteEnabled($campaign, $user)) {
            $rows->get(1)->setActual();
        } else {
            $rows->get(0)->setActual();
        }
    }
    private function deleteCookies(Pap_Contexts_Action $context) {
        if (Gpf_Settings::get(Pap_Settings::DELETE_COOKIE) != Gpf::YES) {
            return;
        }

        $visitorAffiliates = $this->visitorAffiliateCache->getVisitorAffiliateAllRows($context->getVisitorId());
        foreach ($visitorAffiliates as $visitorAffiliate) {
            $this->visitorAffiliateCache->removeVisitorAffiliate($visitorAffiliate->getId());
        }
    }
    private function checkTwoVisitorAffiliateAreSameAndRemove($index1, $index2, Pap_Tracking_Common_VisitorAffiliateCollection $rows,
    Pap_Db_VisitorAffiliate $firstClickVisitorAffiliate, Pap_Tracking_Visit_VisitorAffiliateCache $cache) {
        if ($rows->getValid($index1)->getUserId() != $rows->getValid($index2)->getUserId()) {
            return false;
        }

        if ($rows->getValid($index1)->getUserId() == $firstClickVisitorAffiliate->getUserId()) {
            return false;
        }

        $cache->removeVisitorAffiliate($rows->getValid($index2)->getId());
        $rows->remove($index2);
        $rows->correctIndexes();
        
        $this->cloneVisitorAffiliate($firstClickVisitorAffiliate, $rows, false);
        return true;
    }