diff options
Diffstat (limited to 'vendor/symfony/form/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php')
-rw-r--r-- | vendor/symfony/form/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/vendor/symfony/form/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php b/vendor/symfony/form/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php deleted file mode 100644 index 7b96efb4..00000000 --- a/vendor/symfony/form/Symfony/Component/Form/Extension/Validator/ViolationMapper/MappingRule.php +++ /dev/null | |||
@@ -1,106 +0,0 @@ | |||
1 | <?php | ||
2 | |||
3 | /* | ||
4 | * This file is part of the Symfony package. | ||
5 | * | ||
6 | * (c) Fabien Potencier <fabien@symfony.com> | ||
7 | * | ||
8 | * For the full copyright and license information, please view the LICENSE | ||
9 | * file that was distributed with this source code. | ||
10 | */ | ||
11 | |||
12 | namespace Symfony\Component\Form\Extension\Validator\ViolationMapper; | ||
13 | |||
14 | use Symfony\Component\Form\FormInterface; | ||
15 | use Symfony\Component\Form\Exception\ErrorMappingException; | ||
16 | |||
17 | /** | ||
18 | * @author Bernhard Schussek <bschussek@gmail.com> | ||
19 | */ | ||
20 | class MappingRule | ||
21 | { | ||
22 | /** | ||
23 | * @var FormInterface | ||
24 | */ | ||
25 | private $origin; | ||
26 | |||
27 | /** | ||
28 | * @var string | ||
29 | */ | ||
30 | private $propertyPath; | ||
31 | |||
32 | /** | ||
33 | * @var string | ||
34 | */ | ||
35 | private $targetPath; | ||
36 | |||
37 | public function __construct(FormInterface $origin, $propertyPath, $targetPath) | ||
38 | { | ||
39 | $this->origin = $origin; | ||
40 | $this->propertyPath = $propertyPath; | ||
41 | $this->targetPath = $targetPath; | ||
42 | } | ||
43 | |||
44 | /** | ||
45 | * @return FormInterface | ||
46 | */ | ||
47 | public function getOrigin() | ||
48 | { | ||
49 | return $this->origin; | ||
50 | } | ||
51 | |||
52 | /** | ||
53 | * Matches a property path against the rule path. | ||
54 | * | ||
55 | * If the rule matches, the form mapped by the rule is returned. | ||
56 | * Otherwise this method returns false. | ||
57 | * | ||
58 | * @param string $propertyPath The property path to match against the rule. | ||
59 | * | ||
60 | * @return null|FormInterface The mapped form or null. | ||
61 | */ | ||
62 | public function match($propertyPath) | ||
63 | { | ||
64 | if ($propertyPath === (string) $this->propertyPath) { | ||
65 | return $this->getTarget(); | ||
66 | } | ||
67 | |||
68 | return null; | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * Matches a property path against a prefix of the rule path. | ||
73 | * | ||
74 | * @param string $propertyPath The property path to match against the rule. | ||
75 | * | ||
76 | * @return Boolean Whether the property path is a prefix of the rule or not. | ||
77 | */ | ||
78 | public function isPrefix($propertyPath) | ||
79 | { | ||
80 | $length = strlen($propertyPath); | ||
81 | $prefix = substr($this->propertyPath, 0, $length); | ||
82 | $next = isset($this->propertyPath[$length]) ? $this->propertyPath[$length] : null; | ||
83 | |||
84 | return $prefix === $propertyPath && ('[' === $next || '.' === $next); | ||
85 | } | ||
86 | |||
87 | /** | ||
88 | * @return FormInterface | ||
89 | * | ||
90 | * @throws ErrorMappingException | ||
91 | */ | ||
92 | public function getTarget() | ||
93 | { | ||
94 | $childNames = explode('.', $this->targetPath); | ||
95 | $target = $this->origin; | ||
96 | |||
97 | foreach ($childNames as $childName) { | ||
98 | if (!$target->has($childName)) { | ||
99 | throw new ErrorMappingException(sprintf('The child "%s" of "%s" mapped by the rule "%s" in "%s" does not exist.', $childName, $target->getName(), $this->targetPath, $this->origin->getName())); | ||
100 | } | ||
101 | $target = $target->get($childName); | ||
102 | } | ||
103 | |||
104 | return $target; | ||
105 | } | ||
106 | } | ||