Code Duplication    Length = 56-56 lines in 2 locations

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

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