Code Duplication    Length = 31-33 lines in 5 locations

Core/Executor/ContentTypeGroupManager.php 1 location

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

Core/Executor/ObjectStateGroupManager.php 1 location

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

Core/Executor/ObjectStateManager.php 1 location

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

Core/Executor/RoleManager.php 1 location

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

Core/Executor/UserGroupManager.php 1 location

@@ 193-223 (lines=31) @@
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
        $this->setReferencesCommon($userGroup, $step);
200
        $userGroup = $this->insureSingleEntity($userGroup, $step);
201
202
        foreach ($step->dsl['references'] as $reference) {
203
204
            switch ($reference['attribute']) {
205
                case 'object_id':
206
                case 'content_id':
207
                case 'user_group_id':
208
                case 'id':
209
                    $value = $userGroup->id;
210
                    break;
211
                default:
212
                    throw new \InvalidArgumentException('User Group Manager does not support setting references for attribute ' . $reference['attribute']);
213
            }
214
215
            $overwrite = false;
216
            if (isset($reference['overwrite'])) {
217
                $overwrite = $reference['overwrite'];
218
            }
219
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
220
        }
221
222
        return true;
223
    }
224
225
    protected function setSection(Content $content, $sectionKey)
226
    {