public function finishCondition(&$condition = null)
    {
        if (!$this->condition) {
            throw new DcGeneralRuntimeException('Condition is missing, please create a condition first');
        }

        $event = new FinishConditionEvent($this->condition, $this);
        $this->dispatchEvent($event);
        $condition = $event->getCondition();

        $this->addCondition($condition);
        $this->condition = null;

        return $this;
    }