/** * Validates entry param data structure * * @throws InvalidEntryParamStructure */ public function validate() { $requiredFields = array_values($this->entryInfo->getSchema()); foreach ($requiredFields as $required) { if (!array_key_exists($required, $this->entryInfo->getData())) { $this->errors[] = "{$required} is required."; } } return empty($this->errors); }
/** * Add additional entry info (location, creator). * * @param EntryInfo $info * @return Entry * @throws InvalidEntryParamStructure */ public function addInfo(EntryInfo $info) { $validator = new EntryInfoValidator($info); if (!$validator->validate()) { $message = implode(', ', $validator->getErrors()); throw new InvalidEntryParamStructure($message); } $info->save($this->data); return $this; }