abstract class Tx_Extbase_DomainObject_AbstractDomainObject implements Tx_Extbase_DomainObject_DomainObjectInterface {
/**
- * @var string The uid
+ * @var int The uid
*/
protected $uid;
* TRUE if the object is a clone
* @var boolean
*/
- protected $isClone = FALSE;
+ private $isClone = FALSE;
/**
* The generic constructor. If you want to implement your own __constructor() method in your Domain Object you have to call
* @return void
*/
public function _setProperty($propertyName, $propertyValue) {
- if (property_exists($this, $propertyName)) {
+ if ($this->_hasProperty($propertyName)) {
$this->$propertyName = $propertyValue;
return TRUE;
}
unset($properties['_cleanProperties']);
return $properties;
}
+
+ /**
+ * Returns the property value of the given property name. Only for internal use.
+ *
+ * @return boolean TRUE bool true if the property exists, FALSE if it doesn't exist or
+ * NULL in case of an error.
+ */
+ public function _hasProperty($propertyName) {
+ return property_exists($this, $propertyName);
+ }
/**
* Returns TRUE if the object is new (the uid was not set, yet). Only for internal use
*/
public function _memorizeCleanState() {
}
-
- /**
- * Returns a hash map of dirty properties and $values. This is always the empty array for ValueObjects, because ValueObjects never change.
- *
- * @return array
- */
- public function _getDirtyProperties() {
- return array();
- }
-
+
/**
* Returns TRUE if the properties were modified after reconstitution. However, value objects can be never updated.
*
* @return boolean
*/
- public function _isDirty() {
+ public function _isDirty($propertyName = NULL) {
return FALSE;
}
* @return boolean TRUE if the object has been cloned
*/
public function _isClone() {
- return $this->_isClone;
+ return $this->isClone;
+ }
+
+ /**
+ * Setter whether this Domain Object is a clone of another one.
+ * NEVER SET THIS PROPERTY DIRECTLY. We currently need it to make the
+ * _isDirty check inside AbstractEntity work, but it is just a work-
+ * around right now.
+ *
+ * @param boolean $clone
+ */
+ public function _setClone($clone) {
+ $this->isClone = (boolean)$clone;
}
/**
* @return void
*/
public function __clone() {
- $this->_isClone = TRUE;
+ $this->isClone = TRUE;
}
}
?>
\ No newline at end of file