public function setParameterType($method, $name, $type)
    {
        if (!isset($this->parameterTypes[$method])) {
            throw new \InvalidArgumentException(sprintf('A method with name "%s" is not defined', $name, $method));
        }

        if (!array_key_exists($name, $this->parameterTypes[$method])) {
            throw new \InvalidArgumentException(sprintf('A parameter with name "%s" for method "%s" is not defined', $name, $method));
        }

        $this->parameterTypes[$method][$name] = $type;
    }