protected function absorbComposite(AbstractComposite $compositeRule)
{
if (!$compositeRule instanceof AllOff) {
return $compositeRule;
}
$compositeRuleClone = clone $compositeRule;
$compositeRuleClone->removeRules();
foreach ($compositeRule->getRules() as $rule) {
if ($rule instanceof AbstractComposite) {
$compositeRuleClone->addRule($this->absorbComposite($rule));
} else {
$compositeRuleClone->addRule(new static($rule));
}
}
return $compositeRuleClone;
}