protected function generateMethod(
        RuntimeConfiguration $configuration,
        ClassDefinition $classDefinition,
        MethodDefinition $methodDefinition
    ) {
        $this->typeCheck->generateMethod(func_get_args());

        $typhoonMethod = new ConcreteMethod(
            new Identifier(
                $this->validatorMethodName($methodDefinition)
            )
        );
        $typhoonMethod->addParameter(new ParameterASTNode(
            new Identifier('arguments'),
            new ArrayTypeHint
        ));

        $this->generator()
            ->setValidatorNamespace($configuration->validatorNamespace())
        ;
        $expressions = $this->parameterList(
            $configuration,
            $classDefinition,
            $methodDefinition
        )->accept($this->generator());
        foreach ($expressions as $expression) {
            $typhoonMethod->statementBlock()->add($expression);
        }

        return $typhoonMethod;
    }
protected function generateMethod(
        RuntimeConfiguration $configuration,
        ClassDefinition $classDefinition,
        MethodDefinition $methodDefinition
    ) {
        $this->typeCheck->generateMethod(func_get_args());

        $typhoonMethod = new ConcreteMethod(
            new Identifier(
                $this->validatorMethodName($methodDefinition)
            )
        );
        $typhoonMethod->addParameter(new ParameterASTNode(
            new Identifier('arguments'),
            new ArrayTypeHint
        ));

        $this->generator()
            ->setValidatorNamespace($configuration->validatorNamespace())
        ;
        $expressions = $this->parameterList(
            $configuration,
            $classDefinition,
            $methodDefinition
        )->accept($this->generator());
        foreach ($expressions as $expression) {
            $typhoonMethod->statementBlock()->add($expression);
        }

        return $typhoonMethod;
    }
@param RuntimeConfiguration $configuration
@param ClassDefinition      $classDefinition
@param MethodDefinition     $methodDefinition

@return ConcreteMethod