public function parse(ActivationInterface $activation)
    {
        $hash = 'condition-tree-' .
            HashService::get()->getHash(serialize([
                $activation->getExpression(),
                $activation->getConditions()
            ]));

        if (false === array_key_exists($hash, $this->trees)) {
            $this->trees[$hash] = $this->getConditionTree($hash, $activation);
        }

        return $this->trees[$hash];
    }