* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Mapping; use Symfony\Component\Validator\Exception\ValidatorException; /** * Stores all metadata needed for validating a class property via its getter * method. * * A property getter is any method that is equal to the property's name, * prefixed with either "get" or "is". That method will be used to access the * property's value. * * The getter will be invoked by reflection, so the access of private and * protected getters is supported. * * This class supports serialization and cloning. * * @author Bernhard Schussek * * @see PropertyMetadataInterface */ class GetterMetadata extends MemberMetadata { /** * @param string $class The class the getter is defined on * @param string $property The property which the getter returns * @param string|null $method The method that is called to retrieve the value being validated (null for auto-detection) * * @throws ValidatorException */ public function __construct($class, $property, $method = null) { if (null === $method) { $getMethod = 'get'.ucfirst($property); $isMethod = 'is'.ucfirst($property); $hasMethod = 'has'.ucfirst($property); if (method_exists($class, $getMethod)) { $method = $getMethod; } elseif (method_exists($class, $isMethod)) { $method = $isMethod; } elseif (method_exists($class, $hasMethod)) { $method = $hasMethod; } else { throw new ValidatorException(sprintf('Neither of these methods exist in class %s: %s, %s, %s', $class, $getMethod, $isMethod, $hasMethod)); } } elseif (!method_exists($class, $method)) { throw new ValidatorException(sprintf('The %s() method does not exist in class %s.', $method, $class)); } parent::__construct($class, $method, $property); } /** * {@inheritdoc} */ public function getPropertyValue($object) { return $this->newReflectionMember($object)->invoke($object); } /** * {@inheritdoc} */ protected function newReflectionMember($objectOrClassName) { return new \ReflectionMethod($objectOrClassName, $this->getName()); } } __halt_compiler();----SIGNATURE:----ZNaaolh+vUqYkOEpxXo5IJq1lmso9N6fogRtKCBm8eRU209V+Aq+LHafBzeZVkha52EKErMDN8xzYkPrIGEmU9I6cs5F+N4AYRPKeHceFaQGI0A8iTgUxJhrTNHvHkKuq66G9f88rvo0hAu4qPdbgMswNNa72VYO7/aHyCohe/ZeEzfrYQXYZ0dTPdUX6JxujSjBrT7ngAWpTKv3fTQH2JHxgSKTN+eD6GCWAVkrDd3yts3gF7ERW1uc6rwKzwS0k5h52QVSYdZCk6q7BdkZRS6a6md237JJdMr+Go6xMLR4L0YW17e4Mj3hTS72KXmLgMn18o/5YbBjOrS2Vpfs8Ytlkmk8HKoU6Ta93cksv5/aGI/9gpzPUuLaDXVk2MGw72GiCHaxoAL8dGPdV1vMRg+/WUjz3Vw9fG7KbERwDjeZDLbk+lvaNONF5+kHR1Ka33EwkiNwIuQRz4e0MopYfTU289Uu+GoLlxWKyb0VCtK8EhSrWMWdgwRvZ6uKPIDRCjAQkjlUa85MHmzuhwAvcgZKDPTwU46wZ0/YvIbPJX21H4lWMbUyVtWiBCLrGyBJDswp/yIsmRMFlhA9BUcz4BHsy2BRbSLu8LH5H+McUhOifeb6XcGF2oi9FEkPKC3cR/ofDnexdEArhtbcM5RCazk9AjNoTJuiLyZVWK8lCn8=----ATTACHMENT:----MzQxNDgzMjk5OTg1Nzc0NCAxODc5MTA5NzY1Mzk5MjEgNzYwMzU2MTE4MjcyODc4OA==