public function validate(MethodInterface $method)
    {
        $constraints = $method->getValidationConstraints();
        if (empty($constraints)) {
            return;
        }

        $violations = $this->validator->validate(
            $method->getAttributes(),
            $constraints
        );

        $countable = is_array($violations) || $violations instanceof \Countable;

        if ($countable && count($violations) !== 0) {
            throw new Exception\InvalidAttributeValue(
                'Your method contains invalid attribute value',
                $violations
            );
        }
    }