Added detailed list of received/given likes in user profiles
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / data / DatabaseObjectEditor.class.php
index 3bf23ac2f9beeb2f9621cde04ed8948399e330ab..ebf42211c3b3123c418073120784c489b27c9535 100644 (file)
@@ -4,17 +4,17 @@ use wcf\system\WCF;
 
 /**
  * Basic implementation for object editors following the decorator pattern.
- *
+ * 
  * @author     Marcel Werk
- * @copyright  2001-2011 WoltLab GmbH
+ * @copyright  2001-2014 WoltLab GmbH
  * @license    GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  * @package    com.woltlab.wcf
  * @subpackage data
- * @category   Community Framework
+ * @category   Community Framework
  */
 abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements IEditableObject {
        /**
-        * @see wcf\data\IEditableObject::create()
+        * @see \wcf\data\IEditableObject::create()
         */
        public static function create(array $parameters = array()) {
                $keys = $values = '';
@@ -48,22 +48,10 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
        }
        
        /**
-        * @see wcf\data\IEditableObject::update()
+        * @see \wcf\data\IEditableObject::update()
         */
        public function update(array $parameters = array()) {
-               if (!count($parameters)) return;
-               
-               // check whether any value changed or not
-               $update = false;
-               foreach ($parameters as $name => $value) {
-                       if ($this->__get($name) != $value) {
-                               $update = true;
-                               break;
-                       }
-               }
-               
-               // there is no new data - break to avoid senseless sql queries
-               if (!$update) return;
+               if (empty($parameters)) return;
                
                $updateSQL = '';
                $statementParameters = array();
@@ -72,7 +60,7 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
                        $updateSQL .= $key . ' = ?';
                        $statementParameters[] = $value;
                }
-               $statementParameters[] = $this->__get(static::getDatabaseTableIndexName());
+               $statementParameters[] = $this->getObjectID();
                
                $sql = "UPDATE  ".static::getDatabaseTableName()."
                        SET     ".$updateSQL."
@@ -82,10 +70,10 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
        }
        
        /**
-        * @see wcf\data\IEditableObject::updateCounters()
+        * @see \wcf\data\IEditableObject::updateCounters()
         */
        public function updateCounters(array $counters = array()) {
-               if (!count($counters)) return;
+               if (empty($counters)) return;
                
                $updateSQL = '';
                $statementParameters = array();
@@ -94,7 +82,7 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
                        $updateSQL .= $key . ' = ' . $key . ' + ?';
                        $statementParameters[] = $value;
                }
-               $statementParameters[] = $this->__get(static::getDatabaseTableIndexName());
+               $statementParameters[] = $this->getObjectID();
                
                $sql = "UPDATE  ".static::getDatabaseTableName()."
                        SET     ".$updateSQL."
@@ -104,14 +92,14 @@ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements I
        }
        
        /**
-        * @see wcf\data\IEditableObject::delete()
+        * @see \wcf\data\IEditableObject::delete()
         */
        public function delete() {
-               static::deleteAll(array($this->__get(static::getDatabaseTableIndexName())));
+               static::deleteAll(array($this->getObjectID()));
        }
        
        /**
-        * @see wcf\data\IEditableObject::deleteAll()
+        * @see \wcf\data\IEditableObject::deleteAll()
         */
        public static function deleteAll(array $objectIDs = array()) {
                $sql = "DELETE FROM     ".static::getDatabaseTableName()."