/** * remove protected properties and execute @name annotation * * @param Record $record */ protected function finalizeRecord(Record $record, DataDimensions $dataDimensions) { // Apply @name annotation if ($record->getDataTypeDefinition()->hasNamingPattern()) { $record->setName(Util::applyNamingPattern($record->getProperties(), $record->getDataTypeDefinition()->getNamingPattern())); } // remove protected properties $properties = $record->getProperties(); foreach ($record->getDataTypeDefinition()->getProtectedProperties($dataDimensions->getViewName()) as $property) { unset($properties[$property]); } $record->setProperties($properties); return $record; }
protected function mergeExistingRecord(Record $record, DataDimensions $dataDimensions) { if ($record->getID() != '') { $existingRecord = $this->getMultiViewRecord($record->getId(), $record->getContentTypeName(), $dataDimensions); if ($existingRecord) { $record->setRevision($existingRecord->getRevision()); $existingProperties = $existingRecord->getProperties(); $mergedProperties = array_merge($existingProperties, $record->getProperties()); $mergedRecord = clone $record; $mergedRecord->setProperties($mergedProperties); return $mergedRecord; } } return $record; }
protected function hasChanged(Repository $repository, Record $record) { if ($record->getID() != null) { $records = $this->getRecords($repository); if (isset($records[$record->getID()])) { /** @var Record $effectiveRecord */ $effectiveRecord = $records[$record->getID()]; foreach ($record->getProperties() as $property => $value) { if ($effectiveRecord->getProperty($property) != $value) { return true; } } return false; } } return true; }