71 if ($this->uid !==
null) {
87 $this->pid = (int)
$pid;
98 if ($this->pid ===
null) {
114 $this->{$propertyName} = $propertyValue;
128 return $this->{$propertyName};
138 $properties = get_object_vars($this);
139 foreach ($properties as $propertyName => $propertyValue) {
140 if ($propertyName[0] ===
'_') {
141 unset($properties[$propertyName]);
155 return property_exists($this, $propertyName);
165 return $this->uid ===
null;
176 if ($propertyName !==
null) {
179 $this->_cleanProperties = [];
180 $properties = get_object_vars($this);
181 foreach ($properties as $propertyName => $propertyValue) {
182 if ($propertyName[0] ===
'_') {
199 $propertyValue = $this->{$propertyName};
200 if (is_object($propertyValue)) {
201 $this->_cleanProperties[$propertyName] = clone $propertyValue;
209 $this->_cleanProperties[$propertyName]->_setClone(
false);
212 $this->_cleanProperties[$propertyName] = $propertyValue;
235 return $this->_cleanProperties[$propertyName] ??
null;
245 public function _isDirty($propertyName =
null)
248 throw new \TYPO3\CMS\Extbase\Persistence\Generic\Exception\TooDirtyException(
'The uid "' . $this->uid .
'" has been modified, that is simply too much.', 1222871239);
251 if ($propertyName ===
null) {
253 if ($this->
isPropertyDirty($cleanPropertyValue, $this->{$propertyName}) ===
true) {
276 if (is_object($currentValue)) {
277 $currentTypeString =
null;
278 if ($currentValue instanceof LazyLoadingProxy) {
279 $currentTypeString = $currentValue->_getTypeAndUidString();
280 } elseif ($currentValue instanceof DomainObjectInterface) {
281 $currentTypeString = get_class($currentValue) .
':' . $currentValue->getUid();
284 if ($currentTypeString !==
null) {
285 $previousTypeString =
null;
286 if ($previousValue instanceof LazyLoadingProxy) {
287 $previousTypeString = $previousValue->_getTypeAndUidString();
288 } elseif ($previousValue instanceof DomainObjectInterface) {
289 $previousTypeString = get_class($previousValue) .
':' . $previousValue->getUid();
292 $result = $currentTypeString !== $previousTypeString;
293 } elseif ($currentValue instanceof \
TYPO3\CMS\
Extbase\Persistence\ObjectMonitoringInterface) {
294 $result = !is_object($previousValue) || $currentValue->_isDirty() || get_class($previousValue) !== get_class($currentValue);
297 $result = $previousValue != $currentValue;
300 $result = $previousValue !== $currentValue;
343 return static::class .
':' . (string)$this->uid;