protected function update($step)
    {
        $stateCollection = $this->matchObjectStates('update', $step);

        if (count($stateCollection) > 1 && array_key_exists('references', $step->dsl)) {
            throw new \Exception("Can not execute Object State update because multiple states match, and a references section is specified in the dsl. References can be set when only 1 state matches");
        }

        if (count($stateCollection) > 1 && isset($step->dsl['identifier'])) {
            throw new \Exception("Can not execute Object State update because multiple states match, and an identifier is specified in the dsl.");
        }

        $objectStateService = $this->repository->getObjectStateService();

        foreach ($stateCollection as $state) {
            $objectStateUpdateStruct = $objectStateService->newObjectStateUpdateStruct();

            if (isset($step->dsl['identifier'])) {
                $objectStateUpdateStruct->identifier = $this->referenceResolver->resolveReference($step->dsl['identifier']);
            }
            if (isset($step->dsl['names'])) {
                foreach ($step->dsl['names'] as $name) {
                    $objectStateUpdateStruct->names[$name['languageCode']] = $name['name'];
                }
            }
            if (isset($step->dsl['descriptions'])) {
                foreach ($step->dsl['descriptions'] as $languageCode => $description) {
                    $objectStateUpdateStruct->descriptions[$languageCode] = $description;
                }
            }
            $state = $objectStateService->updateObjectState($state, $objectStateUpdateStruct);

            $this->setReferences($state, $step);
        }

        return $stateCollection;
    }
protected function update($step)
    {
        $stateCollection = $this->matchObjectStates('update', $step);

        if (count($stateCollection) > 1 && array_key_exists('references', $step->dsl)) {
            throw new \Exception("Can not execute Object State update because multiple states match, and a references section is specified in the dsl. References can be set when only 1 state matches");
        }

        if (count($stateCollection) > 1 && isset($step->dsl['identifier'])) {
            throw new \Exception("Can not execute Object State update because multiple states match, and an identifier is specified in the dsl.");
        }

        $objectStateService = $this->repository->getObjectStateService();

        foreach ($stateCollection as $state) {
            $objectStateUpdateStruct = $objectStateService->newObjectStateUpdateStruct();

            if (isset($step->dsl['identifier'])) {
                $objectStateUpdateStruct->identifier = $this->referenceResolver->resolveReference($step->dsl['identifier']);
            }
            if (isset($step->dsl['names'])) {
                foreach ($step->dsl['names'] as $name) {
                    $objectStateUpdateStruct->names[$name['languageCode']] = $name['name'];
                }
            }
            if (isset($step->dsl['descriptions'])) {
                foreach ($step->dsl['descriptions'] as $languageCode => $description) {
                    $objectStateUpdateStruct->descriptions[$languageCode] = $description;
                }
            }
            $state = $objectStateService->updateObjectState($state, $objectStateUpdateStruct);

            $this->setReferences($state, $step);
        }

        return $stateCollection;
    }
protected function update ( $ step ) { $ stateCollection = $ this -> matchObjectStates ( 'update' , $ step ) ; if ( count ( $ stateCollection ) > 1 && array_key_exists ( 'references' , $ step -> dsl ) ) { throw new \ Exception ( "Can not execute Object State update because multiple states match, and a references section is specified in the dsl. References can be set when only 1 state matches" ) ; } if ( count ( $ stateCollection ) > 1 && isset ( $ step -> dsl [ 'identifier' ] ) ) { throw new \ Exception ( "Can not execute Object State update because multiple states match, and an identifier is specified in the dsl." ) ; } $ objectStateService = $ this -> repository -> getObjectStateService ( ) ; foreach ( $ stateCollection as $ state ) { $ objectStateUpdateStruct = $ objectStateService -> newObjectStateUpdateStruct ( ) ; if ( isset ( $ step -> dsl [ 'identifier' ] ) ) { $ objectStateUpdateStruct -> identifier = $ this -> referenceResolver -> resolveReference ( $ step -> dsl [ 'identifier' ] ) ; } if ( isset ( $ step -> dsl [ 'names' ] ) ) { foreach ( $ step -> dsl [ 'names' ] as $ name ) { $ objectStateUpdateStruct -> names [ $ name [ 'languageCode' ] ] = $ name [ 'name' ] ; } } if ( isset ( $ step -> dsl [ 'descriptions' ] ) ) { foreach ( $ step -> dsl [ 'descriptions' ] as $ languageCode => $ description ) { $ objectStateUpdateStruct -> descriptions [ $ languageCode ] = $ description ; } } $ state = $ objectStateService -> updateObjectState ( $ state , $ objectStateUpdateStruct ) ; $ this -> setReferences ( $ state , $ step ) ; } return $ stateCollection ; }
Handles the update step of object state migrations.

@throws \Exception
Handles the update step of object state migrations .