/** * Parse input structure. * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\API\Repository\Values\ObjectState\ObjectStateCreateStruct */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { if (!array_key_exists('identifier', $data)) { throw new Exceptions\Parser("Missing 'identifier' attribute for ObjectStateCreate."); } $objectStateCreateStruct = $this->objectStateService->newObjectStateCreateStruct($data['identifier']); if (!array_key_exists('priority', $data)) { throw new Exceptions\Parser("Missing 'priority' attribute for ObjectStateCreate."); } $objectStateCreateStruct->priority = (int) $data['priority']; if (!array_key_exists('defaultLanguageCode', $data)) { throw new Exceptions\Parser("Missing 'defaultLanguageCode' attribute for ObjectStateCreate."); } $objectStateCreateStruct->defaultLanguageCode = $data['defaultLanguageCode']; if (!array_key_exists('names', $data) || !is_array($data['names'])) { throw new Exceptions\Parser("Missing or invalid 'names' element for ObjectStateCreate."); } if (!array_key_exists('value', $data['names']) || !is_array($data['names']['value'])) { throw new Exceptions\Parser("Missing or invalid 'names' element for ObjectStateCreate."); } $objectStateCreateStruct->names = $this->parserTools->parseTranslatableList($data['names']); // @todo XSD says that descriptions field is mandatory. Does that make sense? if (array_key_exists('descriptions', $data) && is_array($data['descriptions'])) { $objectStateCreateStruct->descriptions = $this->parserTools->parseTranslatableList($data['descriptions']); } return $objectStateCreateStruct; }
/** * Instantiates a new Object State Create Struct and sets $identifier in it. * * @param string $identifier * * @return \eZ\Publish\API\Repository\Values\ObjectState\ObjectStateCreateStruct */ public function newObjectStateCreateStruct($identifier) { return $this->service->newObjectStateCreateStruct($identifier); }