diff -r 5e7a0fedabdf -r 877f952ae2bd web/lib/Zend/Service/WindowsAzure/Storage/DynamicTableEntity.php --- a/web/lib/Zend/Service/WindowsAzure/Storage/DynamicTableEntity.php Thu Mar 21 17:31:31 2013 +0100 +++ b/web/lib/Zend/Service/WindowsAzure/Storage/DynamicTableEntity.php Thu Mar 21 19:50:53 2013 +0100 @@ -15,28 +15,21 @@ * @category Zend * @package Zend_Service_WindowsAzure * @subpackage Storage - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License - * @version $Id: DynamicTableEntity.php 23167 2010-10-19 17:53:31Z mabe $ + * @version $Id: DynamicTableEntity.php 24593 2012-01-05 20:35:02Z matthew $ */ - -/** - * @see Zend_Service_WindowsAzure_Exception - */ -require_once 'Zend/Service/WindowsAzure/Exception.php'; - /** * @see Zend_Service_WindowsAzure_Storage_TableEntity */ require_once 'Zend/Service/WindowsAzure/Storage/TableEntity.php'; - /** * @category Zend * @package Zend_Service_WindowsAzure * @subpackage Storage - * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com) + * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_Service_WindowsAzure_Storage_DynamicTableEntity extends Zend_Service_WindowsAzure_Storage_TableEntity @@ -86,7 +79,7 @@ } else { if (!array_key_exists(strtolower($name), $this->_dynamicProperties)) { // Determine type? - if ($type === null) { + if (is_null($type)) { $type = 'Edm.String'; if (is_int($value)) { $type = 'Edm.Int32'; @@ -94,6 +87,11 @@ $type = 'Edm.Double'; } else if (is_bool($value)) { $type = 'Edm.Boolean'; + } else if ($value instanceof DateTime || $this->_convertToDateTime($value) !== false) { + if (!$value instanceof DateTime) { + $value = $this->_convertToDateTime($value); + } + $type = 'Edm.DateTime'; } } @@ -104,7 +102,28 @@ 'Value' => $value, ); } - + + // Set type? + if (!is_null($type)) { + $this->_dynamicProperties[strtolower($name)]->Type = $type; + + // Try to convert the type + if ($type == 'Edm.Int32' || $type == 'Edm.Int64') { + $value = intval($value); + } else if ($type == 'Edm.Double') { + $value = floatval($value); + } else if ($type == 'Edm.Boolean') { + if (!is_bool($value)) { + $value = strtolower($value) == 'true'; + } + } else if ($type == 'Edm.DateTime') { + if (!$value instanceof DateTime) { + $value = $this->_convertToDateTime($value); + } + } + } + + // Set value $this->_dynamicProperties[strtolower($name)]->Value = $value; } return $this;