private function getVisibilityConditionChain($property)
    {
        if (($chain = $property->getVisibleCondition())
            && ($chain instanceof PropertyConditionChain)
            && $chain->getConjunction() === PropertyConditionChain::AND_CONJUNCTION
        ) {
            return $chain;
        }

        $newChain = new PropertyConditionChain($chain ? [$chain] : []);
        $property->setVisibleCondition($newChain);

        return $newChain;
    }