Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / symfony / validator / Constraints / Callback.php
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\Validator\Constraints;
13
14 use Symfony\Component\Validator\Constraint;
15
16 /**
17  * @Annotation
18  * @Target({"CLASS", "PROPERTY", "METHOD", "ANNOTATION"})
19  *
20  * @author Bernhard Schussek <bschussek@gmail.com>
21  */
22 class Callback extends Constraint
23 {
24     /**
25      * @var string|callable
26      */
27     public $callback;
28
29     /**
30      * {@inheritdoc}
31      */
32     public function __construct($options = null)
33     {
34         // Invocation through annotations with an array parameter only
35         if (is_array($options) && 1 === count($options) && isset($options['value'])) {
36             $options = $options['value'];
37         }
38
39         if (is_array($options) && !isset($options['callback']) && !isset($options['groups']) && !isset($options['payload'])) {
40             $options = array('callback' => $options);
41         }
42
43         parent::__construct($options);
44     }
45
46     /**
47      * {@inheritdoc}
48      */
49     public function getDefaultOption()
50     {
51         return 'callback';
52     }
53
54     /**
55      * {@inheritdoc}
56      */
57     public function getTargets()
58     {
59         return array(self::CLASS_CONSTRAINT, self::PROPERTY_CONSTRAINT);
60     }
61 }