diff -r 000000000000 -r 7f95f8617b0b vendor/doctrine/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php --- /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 @@ + + * @author Benjamin Eberlei + * @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." + ); + } + } +} +