CustomValidatorClassName::class ] */ protected static $validators = []; /** * Validate an attribute value for given attribute name and * container object. * * @param string $name * @param mixed $value * @param mixed $container An object * @return bool * @throws \Exception if $container is not an object */ public static function validate($name, $value, $container) { if (!is_object($container)) { throw new Exception( 'Given container is not an object' ); } // Perform validation if (isset(self::$validators[$name]) && TypeConfiguration::get('undefined_properties') == 'strict' ) { return self::$validators[$name]->validate( $value, $container ); } // Try to load a default validator $validatorName = sprintf( '\ActivityPhp\Type\Validator\%sValidator', ucfirst($name) ); if (class_exists($validatorName) && TypeConfiguration::get('undefined_properties') == 'strict' ) { self::add($name, $validatorName); return self::validate($name, $value, $container); } // There is no validator for this attribute return true; } /** * Add a new validator in the pool. * It checks that it implements Validator\Interface * * @param string $name An attribute name to validate. * @param string $class A validator class name * @throws \Exception if validator class does not implement * \ActivityPhp\Type\Helper\ValidatorInterface */ public static function add($name, $class) { $validator = new $class(); if (!($validator instanceof ValidatorInterface)) { throw new Exception( sprintf( 'Validator "%s" MUST implement "%s" interface', get_class($validator), ValidatorInterface::class ) ); } self::$validators[$name] = $validator; } } __halt_compiler();----SIGNATURE:----qzAhFjUEO1uJ/Fw63fIsUrpOLhnihFu8yTwKcOnM1jU4WdjyAi8sKDUsGzZSqM9dX2Zvxixy+r46AJjbQFgwLugbzTVqQLFUaHXX9URNojQxp1w8Qv29Als8OFS6Pt5BJ9o1CEOF6IBSwg6A4DEVs3kz4oDA2ST4lgqZWV3x78ZfHT8sKeB0PTQw3BHIRHBZ9icDuELMnpHQ93L0Ibb2nAkT7nrkRiy0um8LzcvWang1jeoiIEMhQfNBj5yionYrh4JVYfDYPxIlUs7dJ9J34MVu/2i3Rl1nroAgbArTHQziV0rN16WB5+gMc/FlkDszPnma4eV4vK2ItJLIs1vCHX5DHrFOKWGjjfmo0EspmvLb9dAe1r6y/3K9QeS/eyLmtGGiA9obq4az4QD4d0e8mcOYe+d//9e2J+ogr4IE96+Vew5t7v51B9J7OSZwg0Rm//344NcxtiYw9wdSjOVMYsEgy6R7fBukpjmIwUZQR33aSHzASxMqL3BXUwg6L2mwKLO8V8tCTkeCE9Fo6IA20JXzFu+SU7ZZ/etaEzy/lMjUXMyQ/B+8p0J+3e+mljmS4KE2wfGNt7eSI9CHidHMRg+bOmHc7W6j0NKX4TrGrIzr5oA+SGvvlatRkAsb5kaC+ux2IgyRUfS8p4NYMzBGcHoznKGHgKi7Ih6gcaQzaU4=----ATTACHMENT:----OTMzMDAyNDE4NzU2NjM5MiA0NjE0MDEwNDI5Mzk5NzQxIDUxMDExNTAzNzkxNjkwOTE=