public function getMethodName()
    {
        if (empty($this->methodName)) {
            $methodName = $this->getCleanName();
            if (!$this->isUnique()) {
                if (is_string($this->getParameterType())) {
                    $methodName .= ucfirst($this->getParameterType());
                } else {
                    $methodName .= '_' . md5(var_export($this->getParameterType(), true));
                }
            }
            $context = $this->getOwner()->getPackagedName();
            $methodName = $this->replaceReservedMethod($methodName, $context);
            $methodName = self::replacePhpReservedKeyword($methodName, $context);
            $this->methodName = self::uniqueName($methodName, $this->getOwner()->getPackagedName());
        }
        return $this->methodName;
    }