[+FEATURE] (Persistence): Synchronize PersistenceManagerInterface more with FLOW3
authorSebastian Kurfuerst <sebastian@typo3.org>
Wed, 22 Jun 2011 12:40:02 +0000 (14:40 +0200)
committerSebastian Kurfuerst <sebastian@typo3.org>
Thu, 30 Jun 2011 05:32:05 +0000 (07:32 +0200)
* adds the methods getObjectByIdentifier and getIdentifierByObject directly to
  the Persistence Manager and interface, and marks it as public API.

Resolves: #27657
Change-Id: I14c4b5bad2d91d86801cb6ac873993f8e75a371b

typo3/sysext/extbase/Classes/Persistence/Manager.php
typo3/sysext/extbase/Classes/Persistence/ManagerInterface.php

index 1ee7faf..2bc272b 100644 (file)
@@ -115,7 +115,7 @@ class Tx_Extbase_Persistence_Manager implements Tx_Extbase_Persistence_ManagerIn
        public function registerRepositoryClassName($className) {
                $this->repositoryClassNames[] = $className;
        }
-       
+
        /**
         * Returns the number of records matching the query.
         *
@@ -139,6 +139,35 @@ class Tx_Extbase_Persistence_Manager implements Tx_Extbase_Persistence_ManagerIn
        }
 
        /**
+        * Returns the (internal) identifier for the object, if it is known to the
+        * backend. Otherwise NULL is returned.
+        *
+        * Note: this returns an identifier even if the object has not been
+        * persisted in case of AOP-managed entities. Use isNewObject() if you need
+        * to distinguish those cases.
+        *
+        * @param object $object
+        * @return mixed The identifier for the object if it is known, or NULL
+        * @api
+        */
+       public function getIdentifierByObject($object) {
+               return $this->backend->getIdentifierByObject($object);
+       }
+
+       /**
+        * Returns the object with the (internal) identifier, if it is known to the
+        * backend. Otherwise NULL is returned.
+        *
+        * @param mixed $identifier
+        * @param string $objectType
+        * @return object The object for the identifier if it is known, or NULL
+        * @api
+        */
+       public function getObjectByIdentifier($identifier, $objectType) {
+               return $this->backend->getObjectByIdentifier($identifier, $objectType);
+       }
+
+       /**
         * Commits new objects and changes to objects in the current persistence
         * session into the backend
         *
index f167e0b..569e475 100644 (file)
@@ -39,6 +39,7 @@ interface Tx_Extbase_Persistence_ManagerInterface {
         * Returns the current persistence session
         *
         * @return Tx_Extbase_Persistence_Session
+        * @deprecated since Extbase 1.4.0, will be removed in Extbase 1.6.0.
         */
        public function getSession();
 
@@ -46,6 +47,7 @@ interface Tx_Extbase_Persistence_ManagerInterface {
         * Returns the persistence backend
         *
         * @return Tx_Extbase_Persistence_BackendInterface
+        * @deprecated since Extbase 1.4.0, will be removed in Extbase 1.6.0.
         */
        public function getBackend();
 
@@ -59,6 +61,31 @@ interface Tx_Extbase_Persistence_ManagerInterface {
        public function persistAll();
 
        /**
+        * Returns the (internal) identifier for the object, if it is known to the
+        * backend. Otherwise NULL is returned.
+        *
+        * Note: this returns an identifier even if the object has not been
+        * persisted in case of AOP-managed entities. Use isNewObject() if you need
+        * to distinguish those cases.
+        *
+        * @param object $object
+        * @return mixed The identifier for the object if it is known, or NULL
+        * @api
+        */
+       public function getIdentifierByObject($object);
+
+       /**
+        * Returns the object with the (internal) identifier, if it is known to the
+        * backend. Otherwise NULL is returned.
+        *
+        * @param mixed $identifier
+        * @param string $objectType
+        * @return object The object for the identifier if it is known, or NULL
+        * @api
+        */
+       public function getObjectByIdentifier($identifier, $objectType);
+
+       /**
         * Returns the number of records matching the query.
         *
         * @param Tx_Extbase_Persistence_QueryInterface $query