private function getAccessDecision(array $requestedRoles)
    {
        $voters = $this->getVoters();
        $userClassName = get_class($this->user);

        $voteScore = 0;
        $maxScore = 0;
        foreach ($voters as $v) {
            /**
             * @var $v VoterInterface
             */
            if ($v->supportsUserClass($userClassName)) {
                $vote = $v->vote($this->user, $requestedRoles);
                if ($this->strategy == self::VOTER_STR_AFFIRMATIVE) {
                    if ($vote > 0) {
                        $maxScore++;
                        $voteScore += $vote;
                    }
                } else {
                    if ($this->strategy == self::VOTER_STR_CONSENSUS) {
                        if ($vote > 0) {
                            $voteScore += $vote;
                        }
                        $maxScore++;
                    } else {
                        if ($vote <> 0) {
                            $maxScore++;
                            $voteScore += $vote;
                        }
                    }
                }
            }
        }

        return $this->whatsTheRuling($voteScore, $maxScore);
    }