[!!!][~API] Extbase (Persistence): $query->execute() now returns a plain array of...
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Persistence / Value.php
index fe9560f..797ea06 100644 (file)
@@ -30,7 +30,8 @@
  * without knowing the actual property type (STRING, DOUBLE, BINARY etc.).
  *
  * @package Extbase
- * @version $Id: Value.php 2191 2009-05-07 19:49:06Z k-fish $
+ * @subpackage Persistence
+ * @version $Id$
  * @scope prototype
  */
 class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterface {
@@ -64,12 +65,19 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
         * @return string A String representation of the value of this property.
         */
        public function getString() {
+               if ($this->value === NULL) return NULL;
+               if (is_array($this->value)) return $this->value;
+               if ($this->value instanceof Tx_Extbase_DomainObject_AbstractDomainObject) {
+                       return (string)$this->value->getUid();
+               }
+
                switch ($this->type) {
                        case Tx_Extbase_Persistence_PropertyType::DATE:
                                if (is_a($this->value, 'DateTime')) {
-                                       return date_format($this->value, DATE_ISO8601);
+                                       return $this->value->format('U');
                                } else {
-                                       return date_format(new DateTime($this->value), DATE_ISO8601);
+                                       $this->value = new DateTime($this->value);
+                                       return $this->value->format('U');
                                }
                        case Tx_Extbase_Persistence_PropertyType::BOOLEAN:
                                return (string)(int)$this->value;
@@ -93,7 +101,7 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
         * (see JCR specification).
         *
         * @return \F3\TYPO3CR\Binary A Binary representation of this value.
-        * @throws \F3\PHPCR\RepositoryException if another error occurs.
+        * @throws Tx_Extbase_Persistence_Exception_RepositoryException if another error occurs.
         */
        public function getBinary() {
                throw new Tx_Extbase_Persistence_Exception_UnsupportedMethod('Method not yet implemented, sorry!', 1217843676);
@@ -103,8 +111,8 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
         * Returns a long (integer) representation of this value.
         *
         * @return string A long representation of the value of this property.
-        * @throws \F3\PHPCR\ValueFormatException if conversion to a long is not possible.
-        * @throws \F3\PHPCR\RepositoryException if another error occurs.
+        * @throws Tx_Extbase_Persistence_Exception_ValueFormatException if conversion to a long is not possible.
+        * @throws Tx_Extbase_Persistence_Exception_RepositoryException if another error occurs.
         */
        public function getLong() {
                return (int)$this->value;
@@ -114,8 +122,8 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
         * Returns a BigDecimal representation of this value (aliased to getDouble()).
         *
         * @return float A double representation of the value of this property.
-        * @throws \F3\PHPCR\ValueFormatException if conversion is not possible.
-        * @throws \F3\PHPCR\RepositoryException if another error occurs.
+        * @throws Tx_Extbase_Persistence_Exception_ValueFormatException if conversion is not possible.
+        * @throws Tx_Extbase_Persistence_Exception_RepositoryException if another error occurs.
         */
        public function getDecimal() {
                return $this->getDouble();
@@ -125,19 +133,19 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
         * Returns a double (floating point) representation of this value.
         *
         * @return float A double representation of the value of this property.
-        * @throws \F3\PHPCR\ValueFormatException if conversion to a double is not possible.
-        * @throws \F3\PHPCR\RepositoryException if another error occurs.
+        * @throws Tx_Extbase_Persistence_Exception_ValueFormatException if conversion to a double is not possible.
+        * @throws Tx_Extbase_Persistence_Exception_RepositoryException if another error occurs.
         */
        public function getDouble() {
                return (double)$this->value;
        }
 
        /**
-        * Returns a \DateTime representation of this value.
+        * Returns a DateTime representation of this value.
         *
-        * @return \DateTime A \DateTime representation of the value of this property.
-        * @throws \F3\PHPCR\ValueFormatException if conversion to a \DateTime is not possible.
-        * @throws \F3\PHPCR\RepositoryException if another error occurs.
+        * @return DateTime A DateTime representation of the value of this property.
+        * @throws Tx_Extbase_Persistence_Exception_ValueFormatException if conversion to a \DateTime is not possible.
+        * @throws Tx_Extbase_Persistence_Exception_RepositoryException if another error occurs.
         */
        public function getDate() {
                if (is_a($this->value, 'DateTime')) {
@@ -147,7 +155,7 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
                try {
                        return new DateTime($this->value);
                } catch (Exception $e) {
-                       throw new Tx_Extbase_Persistence_Exception_ValueFormatException('Conversion to a \DateTime object is not possible. Cause: ' . $e->getMessage(), 1190034628);
+                       throw new Tx_Extbase_Persistence_Exception_ValueFormatException('Conversion to a DateTime object is not possible. Cause: ' . $e->getMessage(), 1190034628);
                }
        }
 
@@ -155,8 +163,8 @@ class Tx_Extbase_Persistence_Value implements Tx_Extbase_Persistence_ValueInterf
         * Returns a boolean representation of this value.
         *
         * @return string A boolean representation of the value of this property.
-        * @throws \F3\PHPCR\ValueFormatException if conversion to a boolean is not possible.
-        * @throws \F3\PHPCR\RepositoryException if another error occurs.
+        * @throws Tx_Extbase_Persistence_Exception_ValueFormatException if conversion to a boolean is not possible.
+        * @throws Tx_Extbase_Persistence_Exception_RepositoryException if another error occurs.
         */
        public function getBoolean() {
                return (boolean)$this->value;