private function voteForClassContent(TokenInterface $token, AbstractClassContent $content, array $attributes)
    {
        if (null === $content->getProperty('category')) {
            return self::ACCESS_GRANTED;
        }

        if (self::ACCESS_DENIED === $result = $this->voteForObject($token, $content, $attributes)) {
            if (false !== $parent_class = get_parent_class($content)) {
                if ('BackBee\ClassContent\AbstractClassContent' !== $parent_class) {
                    $parent_class = NAMESPACE_SEPARATOR.$parent_class;
                    $result = $this->voteForClassContent($token, new $parent_class('*'), $attributes);
                } else {
                    $objectIdentity = new ObjectIdentity('all', 'BackBee\ClassContent\AbstractClassContent');
                    $result = parent::vote($token, $objectIdentity, $attributes);
                }
            }
        }

        return $result;
    }