eZ\Publish\Core\REST\Server\Input\Parser\ObjectStateCreate::parse PHP Method

parse() public method

Parse input structure.
public parse ( array $data, ParsingDispatcher $parsingDispatcher ) : eZ\Publish\API\Repository\Values\ObjectState\ObjectStateCreateStruct
$data array
$parsingDispatcher eZ\Publish\Core\REST\Common\Input\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;
    }
ObjectStateCreate