summaryrefslogtreecommitdiff
path: root/Postman/Postman-Mail/Zend-1.12.10/Validate.php
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/Postman-Mail/Zend-1.12.10/Validate.php')
-rw-r--r--Postman/Postman-Mail/Zend-1.12.10/Validate.php290
1 files changed, 290 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/Zend-1.12.10/Validate.php b/Postman/Postman-Mail/Zend-1.12.10/Validate.php
new file mode 100644
index 0000000..44b67bf
--- /dev/null
+++ b/Postman/Postman-Mail/Zend-1.12.10/Validate.php
@@ -0,0 +1,290 @@
+<?php
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category Zend
+ * @package Postman_Zend_Validate
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @version $Id$
+ */
+
+/**
+ * @see Postman_Zend_Validate_Interface
+ */
+// require_once 'Zend/Validate/Interface.php';
+
+/**
+ * @category Zend
+ * @package Postman_Zend_Validate
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ */
+class Postman_Zend_Validate implements Postman_Zend_Validate_Interface
+{
+ /**
+ * Validator chain
+ *
+ * @var array
+ */
+ protected $_validators = array();
+
+ /**
+ * Array of validation failure messages
+ *
+ * @var array
+ */
+ protected $_messages = array();
+
+ /**
+ * Default Namespaces
+ *
+ * @var array
+ */
+ protected static $_defaultNamespaces = array();
+
+ /**
+ * Array of validation failure message codes
+ *
+ * @var array
+ * @deprecated Since 1.5.0
+ */
+ protected $_errors = array();
+
+ /**
+ * Adds a validator to the end of the chain
+ *
+ * If $breakChainOnFailure is true, then if the validator fails, the next validator in the chain,
+ * if one exists, will not be executed.
+ *
+ * @param Postman_Zend_Validate_Interface $validator
+ * @param boolean $breakChainOnFailure
+ * @return Postman_Zend_Validate Provides a fluent interface
+ */
+ public function addValidator(Postman_Zend_Validate_Interface $validator, $breakChainOnFailure = false)
+ {
+ $this->_validators[] = array(
+ 'instance' => $validator,
+ 'breakChainOnFailure' => (boolean) $breakChainOnFailure
+ );
+ return $this;
+ }
+
+ /**
+ * Returns true if and only if $value passes all validations in the chain
+ *
+ * Validators are run in the order in which they were added to the chain (FIFO).
+ *
+ * @param mixed $value
+ * @return boolean
+ */
+ public function isValid($value)
+ {
+ $this->_messages = array();
+ $this->_errors = array();
+ $result = true;
+ foreach ($this->_validators as $element) {
+ $validator = $element['instance'];
+ if ($validator->isValid($value)) {
+ continue;
+ }
+ $result = false;
+ $messages = $validator->getMessages();
+ $this->_messages = array_merge($this->_messages, $messages);
+ $this->_errors = array_merge($this->_errors, array_keys($messages));
+ if ($element['breakChainOnFailure']) {
+ break;
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * Defined by Postman_Zend_Validate_Interface
+ *
+ * Returns array of validation failure messages
+ *
+ * @return array
+ */
+ public function getMessages()
+ {
+ return $this->_messages;
+ }
+
+ /**
+ * Defined by Postman_Zend_Validate_Interface
+ *
+ * Returns array of validation failure message codes
+ *
+ * @return array
+ * @deprecated Since 1.5.0
+ */
+ public function getErrors()
+ {
+ return $this->_errors;
+ }
+
+ /**
+ * Returns the set default namespaces
+ *
+ * @return array
+ */
+ public static function getDefaultNamespaces()
+ {
+ return self::$_defaultNamespaces;
+ }
+
+ /**
+ * Sets new default namespaces
+ *
+ * @param array|string $namespace
+ * @return null
+ */
+ public static function setDefaultNamespaces($namespace)
+ {
+ if (!is_array($namespace)) {
+ $namespace = array((string) $namespace);
+ }
+
+ self::$_defaultNamespaces = $namespace;
+ }
+
+ /**
+ * Adds a new default namespace
+ *
+ * @param array|string $namespace
+ * @return null
+ */
+ public static function addDefaultNamespaces($namespace)
+ {
+ if (!is_array($namespace)) {
+ $namespace = array((string) $namespace);
+ }
+
+ self::$_defaultNamespaces = array_unique(array_merge(self::$_defaultNamespaces, $namespace));
+ }
+
+ /**
+ * Returns true when defaultNamespaces are set
+ *
+ * @return boolean
+ */
+ public static function hasDefaultNamespaces()
+ {
+ return (!empty(self::$_defaultNamespaces));
+ }
+
+ /**
+ * @param mixed $value
+ * @param string $classBaseName
+ * @param array $args OPTIONAL
+ * @param mixed $namespaces OPTIONAL
+ * @return boolean
+ * @throws Postman_Zend_Validate_Exception
+ */
+ public static function is($value, $classBaseName, array $args = array(), $namespaces = array())
+ {
+ $namespaces = array_merge((array) $namespaces, self::$_defaultNamespaces, array('Postman_Zend_Validate'));
+ $className = ucfirst($classBaseName);
+ try {
+ if (!class_exists($className, false)) {
+ require_once 'Zend/Loader.php';
+ foreach($namespaces as $namespace) {
+ $class = $namespace . '_' . $className;
+ $file = str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
+ if (Postman_Zend_Loader::isReadable($file)) {
+ Postman_Zend_Loader::loadClass($class);
+ $className = $class;
+ break;
+ }
+ }
+ }
+
+ $class = new ReflectionClass($className);
+ if ($class->implementsInterface('Postman_Zend_Validate_Interface')) {
+ if ($class->hasMethod('__construct')) {
+ $keys = array_keys($args);
+ $numeric = false;
+ foreach($keys as $key) {
+ if (is_numeric($key)) {
+ $numeric = true;
+ break;
+ }
+ }
+
+ if ($numeric) {
+ $object = $class->newInstanceArgs($args);
+ } else {
+ $object = $class->newInstance($args);
+ }
+ } else {
+ $object = $class->newInstance();
+ }
+
+ return $object->isValid($value);
+ }
+ } catch (Postman_Zend_Validate_Exception $ze) {
+ // if there is an exception while validating throw it
+ throw $ze;
+ } catch (Exception $e) {
+ // fallthrough and continue for missing validation classes
+ }
+
+ require_once 'Zend/Validate/Exception.php';
+ throw new Postman_Zend_Validate_Exception("Validate class not found from basename '$classBaseName'");
+ }
+
+ /**
+ * Returns the maximum allowed message length
+ *
+ * @return integer
+ */
+ public static function getMessageLength()
+ {
+ require_once 'Zend/Validate/Abstract.php';
+ return Postman_Zend_Validate_Abstract::getMessageLength();
+ }
+
+ /**
+ * Sets the maximum allowed message length
+ *
+ * @param integer $length
+ */
+ public static function setMessageLength($length = -1)
+ {
+ require_once 'Zend/Validate/Abstract.php';
+ Postman_Zend_Validate_Abstract::setMessageLength($length);
+ }
+
+ /**
+ * Returns the default translation object
+ *
+ * @return Postman_Zend_Translate_Adapter|null
+ */
+ public static function getDefaultTranslator($translator = null)
+ {
+ require_once 'Zend/Validate/Abstract.php';
+ return Postman_Zend_Validate_Abstract::getDefaultTranslator();
+ }
+
+ /**
+ * Sets a default translation object for all validation objects
+ *
+ * @param Postman_Zend_Translate|Postman_Zend_Translate_Adapter|null $translator
+ */
+ public static function setDefaultTranslator($translator = null)
+ {
+ require_once 'Zend/Validate/Abstract.php';
+ Postman_Zend_Validate_Abstract::setDefaultTranslator($translator);
+ }
+}