1<?php
2
3declare(strict_types=1);
4
5/*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17
18namespace TYPO3\CMS\Extbase\Reflection\ClassSchema\Exception;
19
20/**
21 * Class TYPO3\CMS\Extbase\Reflection\ClassSchema\Exception\NoSuchMethodParameterException
22 */
23class NoSuchMethodParameterException extends \Exception
24{
25    /**
26     * @param string $className
27     * @param string $methodName
28     * @param string $parameterName
29     * @return NoSuchMethodParameterException
30     */
31    public static function createForParameterName(string $className, string $methodName, $parameterName): NoSuchMethodParameterException
32    {
33        return new self(
34            'Method parameter ' . $className . '::' . $methodName . '($' . $parameterName . ') does not exist',
35            1547375654
36        );
37    }
38
39    /**
40     * @param string $className
41     * @param string $methodName
42     * @param int $position
43     * @return NoSuchMethodParameterException
44     */
45    public static function createForParameterPosition(string $className, string $methodName, int $position): NoSuchMethodParameterException
46    {
47        return new self(
48            'Method parameter #' . $position . ' of method ' . $className . '::' . $methodName . ' does not exist',
49            1547459332
50        );
51    }
52}
53