Code Duplication    Length = 30-33 lines in 5 locations

Core/Executor/UserGroupManager.php 1 location

@@ 193-222 (lines=30) @@
190
     * @param \eZ\Publish\API\Repository\Values\User\UserGroup|UserGroupCollection $userGroup
191
     * @return boolean
192
     */
193
    protected function setReferences($userGroup, $step)
194
    {
195
        if (!array_key_exists('references', $step->dsl)) {
196
            return false;
197
        }
198
199
        $references = $this->setReferencesCommon($userGroup, $step->dsl['references']);
200
        $userGroup = $this->insureSingleEntity($userGroup, $references);
201
202
        foreach ($references as $reference) {
203
            switch ($reference['attribute']) {
204
                case 'object_id':
205
                case 'content_id':
206
                case 'user_group_id':
207
                case 'id':
208
                    $value = $userGroup->id;
209
                    break;
210
                default:
211
                    throw new \InvalidArgumentException('User Group Manager does not support setting references for attribute ' . $reference['attribute']);
212
            }
213
214
            $overwrite = false;
215
            if (isset($reference['overwrite'])) {
216
                $overwrite = $reference['overwrite'];
217
            }
218
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
219
        }
220
221
        return true;
222
    }
223
224
    protected function setSection(Content $content, $sectionKey)
225
    {

Core/Executor/RoleManager.php 1 location

@@ 167-198 (lines=32) @@
164
     * @throws \InvalidArgumentException When trying to assign a reference to an unsupported attribute
165
     * @return boolean
166
     */
167
    protected function setReferences($role, $step)
168
    {
169
        if (!array_key_exists('references', $step->dsl)) {
170
            return false;
171
        }
172
173
        $references = $this->setReferencesCommon($role, $step->dsl['references']);
174
        $role = $this->insureSingleEntity($role, $references);
175
176
        foreach ($references as $reference) {
177
            switch ($reference['attribute']) {
178
                case 'role_id':
179
                case 'id':
180
                    $value = $role->id;
181
                    break;
182
                case 'identifier':
183
                case 'role_identifier':
184
                    $value = $role->identifier;
185
                    break;
186
                default:
187
                    throw new \InvalidArgumentException('Role Manager does not support setting references for attribute ' . $reference['attribute']);
188
            }
189
190
            $overwrite = false;
191
            if (isset($reference['overwrite'])) {
192
                $overwrite = $reference['overwrite'];
193
            }
194
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
195
        }
196
197
        return true;
198
    }
199
200
    /**
201
     * @param array $matchCondition

Core/Executor/ContentTypeGroupManager.php 1 location

@@ 122-154 (lines=33) @@
119
     * @param ContentTypeGroup|ContentTypeGroupCollection $object
120
     * @return bool
121
     */
122
    protected function setReferences($object, $step)
123
    {
124
        if (!array_key_exists('references', $step->dsl)) {
125
            return false;
126
        }
127
128
        $references = $this->setReferencesCommon($object, $step->dsl['references']);
129
        $object = $this->insureSingleEntity($object, $references);
130
131
        foreach ($references as $reference) {
132
133
            switch ($reference['attribute']) {
134
                case 'content_type_group_id':
135
                case 'id':
136
                    $value = $object->id;
137
                    break;
138
                case 'content_type_group_identifier':
139
                case 'identifier':
140
                    $value = $object->identifier;
141
                    break;
142
                default:
143
                    throw new \InvalidArgumentException('Content Type Group Manager does not support setting references for attribute ' . $reference['attribute']);
144
            }
145
146
            $overwrite = false;
147
            if (isset($reference['overwrite'])) {
148
                $overwrite = $reference['overwrite'];
149
            }
150
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
151
        }
152
153
        return true;
154
    }
155
156
    /**
157
     * @param array $matchCondition

Core/Executor/ObjectStateGroupManager.php 1 location

@@ 149-180 (lines=32) @@
146
     * {@inheritdoc}
147
     * @param \eZ\Publish\API\Repository\Values\ObjectState\ObjectStateGroup|ObjectStateGroupCollection $objectStateGroup
148
     */
149
    protected function setReferences($objectStateGroup, $step)
150
    {
151
        if (!array_key_exists('references', $step->dsl)) {
152
            return false;
153
        }
154
155
        $references = $this->setReferencesCommon($objectStateGroup, $step->dsl['references']);
156
        $objectStateGroup = $this->insureSingleEntity($objectStateGroup, $references);
157
158
        foreach ($references as $reference) {
159
            switch ($reference['attribute']) {
160
                case 'object_state_group_id':
161
                case 'id':
162
                    $value = $objectStateGroup->id;
163
                    break;
164
                case 'object_state_group_identifier':
165
                case 'identifier':
166
                    $value = $objectStateGroup->id;
167
                    break;
168
                default:
169
                    throw new \InvalidArgumentException('Object State Group Manager does not support setting references for attribute ' . $reference['attribute']);
170
            }
171
172
            $overwrite = false;
173
            if (isset($reference['overwrite'])) {
174
                $overwrite = $reference['overwrite'];
175
            }
176
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
177
        }
178
179
        return true;
180
    }
181
182
    /**
183
     * @param array $matchCondition

Core/Executor/ObjectStateManager.php 1 location

@@ 165-195 (lines=31) @@
162
     * {@inheritdoc}
163
     * @param \eZ\Publish\API\Repository\Values\ObjectState\ObjectState|ObjectStateCollection $objectState
164
     */
165
    protected function setReferences($objectState, $step)
166
    {
167
        if (!array_key_exists('references', $step->dsl)) {
168
            return false;
169
        }
170
171
        $references = $this->setReferencesCommon($objectState, $step->dsl['references']);
172
        $objectState = $this->insureSingleEntity($objectState, $references);
173
174
        foreach ($references as $reference) {
175
            switch ($reference['attribute']) {
176
                case 'object_state_id':
177
                case 'id':
178
                    $value = $objectState->id;
179
                    break;
180
                case 'priority':
181
                    $value = $objectState->priority;
182
                    break;
183
                default:
184
                    throw new \InvalidArgumentException('Object State Manager does not support setting references for attribute ' . $reference['attribute']);
185
            }
186
187
            $overwrite = false;
188
            if (isset($reference['overwrite'])) {
189
                $overwrite = $reference['overwrite'];
190
            }
191
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
192
        }
193
194
        return true;
195
    }
196
197
    /**
198
     * @param array $matchCondition