protected function processSplObjectStorage(\SplObjectStorage $splObjectStorage = null, $parentIdentifier, array $previousObjectStorage = null)
{
if ($previousObjectStorage !== null && is_array($previousObjectStorage['value'])) {
$this->removeDeletedSplObjectStorageEntries($splObjectStorage, $previousObjectStorage['value']);
}
if ($splObjectStorage === null) {
return null;
}
$values = [];
foreach ($splObjectStorage as $object) {
if ($object instanceof \DateTimeInterface) {
$values[] = ['type' => 'DateTime', 'index' => null, 'value' => $this->processDateTime($object)];
} elseif ($object instanceof \SplObjectStorage) {
throw new PersistenceException('SplObjectStorage instances in SplObjectStorage are not supported - missing feature?!?', 1283524360);
} elseif ($object instanceof \ArrayObject) {
throw new PersistenceException('ArrayObject instances in SplObjectStorage are not supported - missing feature?!?', 1283524350);
} else {
$values[] = ['type' => $this->getType($object), 'index' => null, 'value' => $this->processObject($object, $parentIdentifier)];
}
}
return $values;
}