diff options
Diffstat (limited to 'libs/Zend/Validate/Barcode.php')
-rw-r--r-- | libs/Zend/Validate/Barcode.php | 182 |
1 files changed, 30 insertions, 152 deletions
diff --git a/libs/Zend/Validate/Barcode.php b/libs/Zend/Validate/Barcode.php index 111010880e..374a9e5449 100644 --- a/libs/Zend/Validate/Barcode.php +++ b/libs/Zend/Validate/Barcode.php @@ -14,164 +14,70 @@ * * @category Zend * @package Zend_Validate - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: Barcode.php 21748 2010-04-03 10:29:56Z thomas $ + * @version $Id: Barcode.php 16223 2009-06-21 20:04:53Z thomas $ */ /** * @see Zend_Validate_Abstract */ -// require_once 'Zend/Validate/Abstract.php'; - -/** - * @see Zend_Loader - */ -// require_once 'Zend/Loader.php'; +require_once 'Zend/Validate/Abstract.php'; /** * @category Zend * @package Zend_Validate - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Validate_Barcode extends Zend_Validate_Abstract { - const INVALID = 'barcodeInvalid'; - const FAILED = 'barcodeFailed'; - const INVALID_CHARS = 'barcodeInvalidChars'; - const INVALID_LENGTH = 'barcodeInvalidLength'; - - protected $_messageTemplates = array( - self::FAILED => "'%value%' failed checksum validation", - self::INVALID_CHARS => "'%value%' contains invalid characters", - self::INVALID_LENGTH => "'%value%' should have a length of %length% characters", - self::INVALID => "Invalid type given, value should be string", - ); - - /** - * Additional variables available for validation failure messages - * - * @var array - */ - protected $_messageVariables = array( - 'length' => '_length' - ); - - /** - * Length for the set subtype - * - * @var integer - */ - protected $_length; - /** - * Barcode adapter + * Barcode validator * - * @var Zend_Validate_Barcode_BarcodeAdapter + * @var Zend_Validate_Abstract */ - protected $_adapter; + protected $_barcodeValidator; /** * Generates the standard validator object * - * @param string|Zend_Config| - * Zend_Validate_Barcode_BarcodeAdapter $adapter Barcode adapter to use + * @param string $barcodeType - Barcode validator to use * @return void * @throws Zend_Validate_Exception */ - public function __construct($adapter) - { - if ($adapter instanceof Zend_Config) { - $adapter = $adapter->toArray(); - } - - $options = null; - $checksum = null; - if (is_array($adapter)) { - if (array_key_exists('options', $adapter)) { - $options = $adapter['options']; - } - - if (array_key_exists('checksum', $adapter)) { - $checksum = $adapter['checksum']; - } - - if (array_key_exists('adapter', $adapter)) { - $adapter = $adapter['adapter']; - } else { - // require_once 'Zend/Validate/Exception.php'; - throw new Zend_Validate_Exception("Missing option 'adapter'"); - } - } - - $this->setAdapter($adapter, $options); - if ($checksum !== null) { - $this->setChecksum($checksum); - } - } - - /** - * Returns the set adapter - * - * @return Zend_Validate_Barcode_BarcodeAdapter - */ - public function getAdapter() + public function __construct($barcodeType) { - return $this->_adapter; + $this->setType($barcodeType); } /** - * Sets a new barcode adapter + * Sets a new barcode validator * - * @param string|Zend_Validate_Barcode $adapter Barcode adapter to use - * @param array $options Options for this adapter + * @param string $barcodeType - Barcode validator to use * @return void * @throws Zend_Validate_Exception */ - public function setAdapter($adapter, $options = null) + public function setType($barcodeType) { - $adapter = ucfirst(strtolower($adapter)); - // require_once 'Zend/Loader.php'; - if (Zend_Loader::isReadable('Zend/Validate/Barcode/' . $adapter. '.php')) { - $adapter = 'Zend_Validate_Barcode_' . $adapter; - } - - // if (!class_exists($adapter)) { - // Zend_Loader::loadClass($adapter); - // } - - $this->_adapter = new $adapter($options); - if (!$this->_adapter instanceof Zend_Validate_Barcode_AdapterInterface) { - // require_once 'Zend/Validate/Exception.php'; - throw new Zend_Validate_Exception( - "Adapter " . $adapter . " does not implement Zend_Validate_Barcode_AdapterInterface" - ); + switch (strtolower($barcodeType)) { + case 'upc': + case 'upc-a': + require_once 'Zend/Validate/Barcode/UpcA.php'; + $class = 'Zend_Validate_Barcode_UpcA'; + break; + case 'ean13': + case 'ean-13': + require_once 'Zend/Validate/Barcode/Ean13.php'; + $class = 'Zend_Validate_Barcode_Ean13'; + break; + default: + require_once 'Zend/Validate/Exception.php'; + throw new Zend_Validate_Exception("Barcode type '$barcodeType' is not supported'"); + break; } - return $this; - } - - /** - * Returns the checksum option - * - * @return boolean - */ - public function getChecksum() - { - return $this->getAdapter()->getCheck(); - } - - /** - * Sets the checksum option - * - * @param boolean $checksum - * @return Zend_Validate_Barcode - */ - public function setChecksum($checksum) - { - $this->getAdapter()->setCheck($checksum); - return $this; + $this->_barcodeValidator = new $class; } /** @@ -184,34 +90,6 @@ class Zend_Validate_Barcode extends Zend_Validate_Abstract */ public function isValid($value) { - if (!is_string($value)) { - $this->_error(self::INVALID); - return false; - } - - $this->_setValue($value); - $adapter = $this->getAdapter(); - $this->_length = $adapter->getLength(); - $result = $adapter->checkLength($value); - if (!$result) { - $this->_error(self::INVALID_LENGTH); - return false; - } - - $result = $adapter->checkChars($value); - if (!$result) { - $this->_error(self::INVALID_CHARS); - return false; - } - - if ($this->getChecksum()) { - $result = $adapter->checksum($value); - if (!$result) { - $this->_error(self::FAILED); - return false; - } - } - - return true; + return call_user_func(array($this->_barcodeValidator, 'isValid'), $value); } } |