EXTMVC:
authorJochen Rau <j.rau@web.de>
Tue, 24 Mar 2009 12:05:11 +0000 (12:05 +0000)
committerJochen Rau <j.rau@web.de>
Tue, 24 Mar 2009 12:05:11 +0000 (12:05 +0000)
* Now Implementing the AbstractDomainObject against the DomainObjectInterface

typo3/sysext/extbase/Classes/DomainObject/TX_EXTMVC_DomainObject_AbstractDomainObject.php
typo3/sysext/extbase/Classes/DomainObject/TX_EXTMVC_DomainObject_DomainObjectInterface.php [new file with mode: 0644]

index 659f268..44cb18b 100644 (file)
  * @subpackage extmvc
  * @version $ID:$
  */
-abstract class TX_EXTMVC_DomainObject_AbstractDomainObject {
+abstract class TX_EXTMVC_DomainObject_AbstractDomainObject implements TX_EXTMVC_DomainObject_DomainObjectInterface {
 
        /**
         * @var string The uid
         */
        protected $uid;
 
+       /**
+        * @var An array holding the clean property values. Set right after reconstitution of the object
+        */
+       private $_cleanProperties = NULL;
+
        /**
         * The generic constructor. If you want to implement your own __constructor() method in your Domain Object you have to call
         * $this->initializeObject() in the first line of your constructor.
         *
         * @var array
         */
-       private $_cleanProperties = NULL;
-
        public function __construct() {
                $this->initializeObject();
        }
diff --git a/typo3/sysext/extbase/Classes/DomainObject/TX_EXTMVC_DomainObject_DomainObjectInterface.php b/typo3/sysext/extbase/Classes/DomainObject/TX_EXTMVC_DomainObject_DomainObjectInterface.php
new file mode 100644 (file)
index 0000000..da84899
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/***************************************************************
+*  Copyright notice
+*
+*  (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
+*  All rights reserved
+*
+*  This script is part of the TYPO3 project. The TYPO3 project is
+*  free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 2 of the License, or
+*  (at your option) any later version.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*
+*  This script is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+
+/**
+ * A Domain Object Interface
+ *
+ * @package TYPO3
+ * @subpackage extmvc
+ * @version $ID:$
+ */
+interface TX_EXTMVC_DomainObject_DomainObjectInterface {
+
+       /**
+        * Reconstitutes a property. This method should only be called at reconstitution time!
+        *
+        * @param string $propertyName
+        * @param string $value
+        * @return void
+        * @internal
+        */
+       public function _reconstituteProperty($propertyName, $value);
+
+       /**
+        * Register an object's clean state, e.g. after it has been reconstituted
+        * from the database
+        *
+        * @return void
+        * @internal
+        */
+       public function _memorizeCleanState();
+
+       /**
+        * Returns TRUE if the properties were modified after reconstitution
+        *
+        * @return boolean
+        * @internal
+        */
+       public function _isDirty();
+       /**
+        * Returns a hash map of property names and property values
+        *
+        * @return array The properties
+        * @internal
+        */
+       public function _getProperties();
+       /**
+        * Returns a hash map of dirty properties and $values
+        *
+        * @return boolean
+        * @internal
+        */
+       public function _getDirtyProperties();
+
+}
+?>
\ No newline at end of file