* * 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:----Ikc7svb5BbNKSIcKFwRk1D4/bv9UbbGJQVwulugCYAmHK8Pjvbz+HuKbNNk+PmZ8uG6QAUBPmgEkC2EUXACCy8fL9Ex7Nf+BjztKEr/QOZdzXIB3kLVr6F+paxUYq78kFspEdQ4OLj9O8HKoadOBtCpKi74+ELFHxo3Eq6pKC4Dth+6Ko47L6CRIM3/Cb38S+esTZoGAuL62LWk/xrJmnjaZAQXm0bVnsvLKAZYlKnk1YOjhfZnGyMWoFjcH3XsoZ8qVa6hcyMOCFByNooERYLc3EPedfEqElq2IGLBY3wvg9JJuEjiQ6C6mlyToLP8gt+nnHKCzc1mBZ50MO/8R7zEcpDAmlULB0k+J/7zFxiSqT1lkw6ct8pTC5JxpM0kJrQwqcQH3ygJ+HmywPZApgTRS00nj27T1icx1/WZh9lLH3Z2IRwUOAtRiV6t0KiD1XIdgXlMvOnOwVIyccDyZO8putXdm6dLaGk7xVWCeZWLEow0gp6cMc1Uwev01nGZBinVrmilW4zYHa8NvXMfN0l3K84zr5pSVI+Ahat0hk5jWL7JByBarlzzUmLmhmCcrQElOs4cnqf7ovj5sclY5nvcik32FrRC+o7PlMwBO8hY0B4fEYLVGEWfkO14pVp2hVfXZkJg1OOO1R+wA4evV7Sto8LU8tfTl1voX63FGFQY=----ATTACHMENT:----Njc1NjU2ODk0Nzk3NDkwMSA3ODM3OTQ0ODU1Mjc1NjI3IDE1NTYzMzkyOTYxNDgwMjM=