vendor/doctrine/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php
changeset 0 7f95f8617b0b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/doctrine/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php	Sat Sep 24 15:40:41 2011 +0200
@@ -0,0 +1,98 @@
+<?php
+
+namespace Doctrine\ORM\Event;
+
+use Doctrine\Common\EventArgs,
+    Doctrine\ORM\EntityManager;
+
+/**
+ * Class that holds event arguments for a preInsert/preUpdate event.
+ *
+ * @author Roman Borschel <roman@code-factory.org>
+ * @author Benjamin Eberlei <kontakt@beberlei.de>
+ * @since 2.0
+ */
+class PreUpdateEventArgs extends LifecycleEventArgs
+{
+    /**
+     * @var array
+     */
+    private $_entityChangeSet;
+
+    /**
+     *
+     * @param object $entity
+     * @param EntityManager $em
+     * @param array $changeSet
+     */
+    public function __construct($entity, $em, array &$changeSet)
+    {
+        parent::__construct($entity, $em);
+        $this->_entityChangeSet = &$changeSet;
+    }
+
+    public function getEntityChangeSet()
+    {
+        return $this->_entityChangeSet;
+    }
+
+    /**
+     * Field has a changeset?
+     *
+     * @return bool
+     */
+    public function hasChangedField($field)
+    {
+        return isset($this->_entityChangeSet[$field]);
+    }
+
+    /**
+     * Get the old value of the changeset of the changed field.
+     * 
+     * @param  string $field
+     * @return mixed
+     */
+    public function getOldValue($field)
+    {
+    	$this->_assertValidField($field);
+
+        return $this->_entityChangeSet[$field][0];
+    }
+
+    /**
+     * Get the new value of the changeset of the changed field.
+     *
+     * @param  string $field
+     * @return mixed
+     */
+    public function getNewValue($field)
+    {
+        $this->_assertValidField($field);
+
+        return $this->_entityChangeSet[$field][1];
+    }
+
+    /**
+     * Set the new value of this field.
+     * 
+     * @param string $field
+     * @param mixed $value
+     */
+    public function setNewValue($field, $value)
+    {
+        $this->_assertValidField($field);
+
+        $this->_entityChangeSet[$field][1] = $value;
+    }
+
+    private function _assertValidField($field)
+    {
+    	if (!isset($this->_entityChangeSet[$field])) {
+            throw new \InvalidArgumentException(
+                "Field '".$field."' is not a valid field of the entity ".
+                "'".get_class($this->getEntity())."' in PreInsertUpdateEventArgs."
+            );
+        }
+    }
+}
+