public function mapEntity(Record $record, $data) { $this->data = $data; $this->record = $record; $this->record->setId($this->data['nid']); $this->record->setProperty('name', $this->data['title']); $this->record->setRevision(1); return $this->record; }
public function saveRecord(Record $record, DataDimensions $dataDimensions = null) { if (!$dataDimensions) { $dataDimensions = $this->getCurrentDataDimensions(); } if ($record->getID() == '') { $record->setId($this->getNextId($record->getContentTypeName(), $dataDimensions)); $record->setRevision(1); $toBeSavedRecord = $record; } else { $mergedRecord = $this->mergeExistingRecord($record, $dataDimensions); $mergedRecord->setRevision($mergedRecord->getRevision() + 1); $record->setRevision($mergedRecord->getRevision()); $toBeSavedRecord = $mergedRecord; } $toBeSavedRecord->setLastChangeUserInfo($this->userInfo); $record->setLastChangeUserInfo($this->userInfo); $filename = $this->getConfiguration()->getFolderNameRecords($toBeSavedRecord->getContentTypeName(), $dataDimensions); $filename .= '/' . $toBeSavedRecord->getID() . '.json'; $data = json_encode($toBeSavedRecord, JSON_PRETTY_PRINT); $this->stashRecord($toBeSavedRecord, $dataDimensions); if (!$this->writeData($filename, $data)) { throw new AnyContentClientException('Error when saving record of content type ' . $record->getContentTypeName()); } return $toBeSavedRecord->getID(); }
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; }
public function createRecordFromCMDL($cmdl, $properties = [], $viewName = "default", $workspace = "default", $language = "default") { $contentTypeDefinition = Parser::parseCMDLString($cmdl); /** @var Record $record */ $record = new Record($contentTypeDefinition, '', $viewName, $workspace, $language); $revision = isset($jsonRecord['revision']) ? $jsonRecord['revision'] : 0; $record->setRevision($revision); if ($this->getOption('validateProperties') == true) { foreach ($properties as $property => $value) { $record->setProperty($property, $value); } } else { $record->setProperties($properties); } return $record; }