public function appendParameter(Parameter $Parameter, $Handler = null) {
        /** @var $Parameter Option */
        switch (true) {
            case $Parameter instanceof Option:
                $this->parameters[$Parameter->getLong()] = $Parameter;
                if (!is_null($Handler)) {
                    if ($Handler instanceof Closure) {
                        $this->setEvent($Parameter, $Handler);
                    } else {
                        throw new ParameterEventTypeException();
                    }
                }
                $this->clearCache();
                break;
            default:
                throw new UnsupportedParameterTypeException();
        }
    }