Esempio n. 1
0
 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;
 }