Code Duplication    Length = 56-56 lines in 2 locations

eZ/Publish/Core/Repository/ObjectStateService.php 2 locations

@@ 692-747 (lines=56) @@
689
     *
690
     * @return \eZ\Publish\SPI\Persistence\Content\ObjectState\InputStruct
691
     */
692
    protected function buildObjectStateUpdateInputStruct(APIObjectState $objectState, $identifier, $defaultLanguageCode, $names, $descriptions)
693
    {
694
        $inputStruct = new InputStruct();
695
696
        if ($identifier !== null && (!is_string($identifier) || empty($identifier))) {
697
            throw new InvalidArgumentValue('identifier', $identifier);
698
        }
699
700
        $inputStruct->identifier = $identifier !== null ? $identifier : $objectState->identifier;
701
702
        if ($defaultLanguageCode !== null && (!is_string($defaultLanguageCode) || empty($defaultLanguageCode))) {
703
            throw new InvalidArgumentValue('defaultLanguageCode', $defaultLanguageCode);
704
        }
705
706
        $inputStruct->defaultLanguage = $defaultLanguageCode !== null ? $defaultLanguageCode : $objectState->defaultLanguageCode;
707
708
        if ($names !== null && (!is_array($names) || empty($names))) {
709
            throw new InvalidArgumentValue('names', $names);
710
        }
711
712
        $inputStruct->name = $names !== null ? $names : $objectState->getNames();
713
714
        if (!isset($inputStruct->name[$inputStruct->defaultLanguage])) {
715
            throw new InvalidArgumentValue('names', $inputStruct->name);
716
        }
717
718
        foreach ($inputStruct->name as $languageCode => $name) {
719
            try {
720
                $this->repository->getContentLanguageService()->loadLanguage($languageCode);
721
            } catch (NotFoundException $e) {
722
                throw new InvalidArgumentValue('names', $inputStruct->name);
723
            }
724
725
            if (!is_string($name) || empty($name)) {
726
                throw new InvalidArgumentValue('names', $inputStruct->name);
727
            }
728
        }
729
730
        if ($descriptions !== null && !is_array($descriptions)) {
731
            throw new InvalidArgumentValue('descriptions', $descriptions);
732
        }
733
734
        $descriptions = $descriptions !== null ? $descriptions : $objectState->getDescriptions();
735
        $descriptions = $descriptions !== null ? $descriptions : array();
736
737
        $inputStruct->description = array();
738
        foreach ($inputStruct->name as $languageCode => $name) {
739
            if (isset($descriptions[$languageCode]) && !empty($descriptions[$languageCode])) {
740
                $inputStruct->description[$languageCode] = $descriptions[$languageCode];
741
            } else {
742
                $inputStruct->description[$languageCode] = '';
743
            }
744
        }
745
746
        return $inputStruct;
747
    }
748
749
    /**
750
     * Validates input for updating object state groups and builds the InputStruct object.
@@ 760-815 (lines=56) @@
757
     *
758
     * @return \eZ\Publish\SPI\Persistence\Content\ObjectState\InputStruct
759
     */
760
    protected function buildObjectStateGroupUpdateInputStruct(APIObjectStateGroup $objectStateGroup, $identifier, $defaultLanguageCode, $names, $descriptions)
761
    {
762
        $inputStruct = new InputStruct();
763
764
        if ($identifier !== null && (!is_string($identifier) || empty($identifier))) {
765
            throw new InvalidArgumentValue('identifier', $identifier);
766
        }
767
768
        $inputStruct->identifier = $identifier !== null ? $identifier : $objectStateGroup->identifier;
769
770
        if ($defaultLanguageCode !== null && (!is_string($defaultLanguageCode) || empty($defaultLanguageCode))) {
771
            throw new InvalidArgumentValue('defaultLanguageCode', $defaultLanguageCode);
772
        }
773
774
        $inputStruct->defaultLanguage = $defaultLanguageCode !== null ? $defaultLanguageCode : $objectStateGroup->defaultLanguageCode;
775
776
        if ($names !== null && (!is_array($names) || empty($names))) {
777
            throw new InvalidArgumentValue('names', $names);
778
        }
779
780
        $inputStruct->name = $names !== null ? $names : $objectStateGroup->getNames();
781
782
        if (!isset($inputStruct->name[$inputStruct->defaultLanguage])) {
783
            throw new InvalidArgumentValue('names', $inputStruct->name);
784
        }
785
786
        foreach ($inputStruct->name as $languageCode => $name) {
787
            try {
788
                $this->repository->getContentLanguageService()->loadLanguage($languageCode);
789
            } catch (NotFoundException $e) {
790
                throw new InvalidArgumentValue('names', $inputStruct->name);
791
            }
792
793
            if (!is_string($name) || empty($name)) {
794
                throw new InvalidArgumentValue('names', $inputStruct->name);
795
            }
796
        }
797
798
        if ($descriptions !== null && !is_array($descriptions)) {
799
            throw new InvalidArgumentValue('descriptions', $descriptions);
800
        }
801
802
        $descriptions = $descriptions !== null ? $descriptions : $objectStateGroup->getDescriptions();
803
        $descriptions = $descriptions !== null ? $descriptions : array();
804
805
        $inputStruct->description = array();
806
        foreach ($inputStruct->name as $languageCode => $name) {
807
            if (isset($descriptions[$languageCode]) && !empty($descriptions[$languageCode])) {
808
                $inputStruct->description[$languageCode] = $descriptions[$languageCode];
809
            } else {
810
                $inputStruct->description[$languageCode] = '';
811
            }
812
        }
813
814
        return $inputStruct;
815
    }
816
}
817