Code Duplication    Length = 36-39 lines in 3 locations

Core/Executor/SectionManager.php 1 location

@@ 122-157 (lines=36) @@
119
     * @throws \InvalidArgumentException When trying to set a reference to an unsupported attribute
120
     * @return boolean
121
     */
122
    protected function setReferences($section, $step)
123
    {
124
        if (!array_key_exists('references', $step->dsl)) {
125
            return false;
126
        }
127
128
        $references = $this->setReferencesCommon($section, $step->dsl['references']);
129
        $section = $this->insureSingleEntity($section, $references);
130
131
        foreach ($references as $reference) {
132
            switch ($reference['attribute']) {
133
                case 'section_id':
134
                case 'id':
135
                    $value = $section->id;
136
                    break;
137
                case 'section_identifier':
138
                case 'identifier':
139
                    $value = $section->identifier;
140
                    break;
141
                case 'section_name':
142
                case 'name':
143
                    $value = $section->name;
144
                    break;
145
                default:
146
                    throw new \InvalidArgumentException('Section Manager does not support setting references for attribute ' . $reference['attribute']);
147
            }
148
149
            $overwrite = false;
150
            if (isset($reference['overwrite'])) {
151
                $overwrite = $reference['overwrite'];
152
            }
153
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
154
        }
155
156
        return true;
157
    }
158
159
    /**
160
     * @param array $matchCondition

Core/Executor/UserManager.php 1 location

@@ 220-257 (lines=38) @@
217
     * @throws \InvalidArgumentException when trying to set references to unsupported attributes
218
     * @return boolean
219
     */
220
    protected function setReferences($user, $step)
221
    {
222
        if (!array_key_exists('references', $step->dsl)) {
223
            return false;
224
        }
225
226
        $references = $this->setReferencesCommon($user, $step->dsl['references']);
227
        $user = $this->insureSingleEntity($user, $references);
228
229
        foreach ($references as $reference) {
230
231
            switch ($reference['attribute']) {
232
                case 'user_id':
233
                case 'id':
234
                    $value = $user->id;
235
                    break;
236
                case 'email':
237
                    $value = $user->email;
238
                    break;
239
                case 'enabled':
240
                    $value = $user->enabled;
241
                    break;
242
                case 'login':
243
                    $value = $user->login;
244
                    break;
245
                default:
246
                    throw new \InvalidArgumentException('User Manager does not support setting references for attribute ' . $reference['attribute']);
247
            }
248
249
            $overwrite = false;
250
            if (isset($reference['overwrite'])) {
251
                $overwrite = $reference['overwrite'];
252
            }
253
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
254
        }
255
256
        return true;
257
    }
258
}
259

Core/Executor/LanguageManager.php 1 location

@@ 106-144 (lines=39) @@
103
     * @throws \InvalidArgumentException When trying to set a reference to an unsupported attribute
104
     * @return boolean
105
     */
106
    protected function setReferences($language, $step)
107
    {
108
        if (!array_key_exists('references', $step->dsl)) {
109
            return false;
110
        }
111
112
        $references = $this->setReferencesCommon($language, $step->dsl['references']);
113
        $language = $this->insureSingleEntity($language, $references);
114
115
        foreach ($references as $reference) {
116
117
            switch ($reference['attribute']) {
118
                case 'language_id':
119
                case 'id':
120
                    $value = $language->id;
121
                    break;
122
                case 'enabled':
123
                    $value = $language->enabled;
124
                    break;
125
                case 'language_code':
126
                    $value = $language->languageCode;
127
                    break;
128
                case 'language_name':
129
                case 'name':
130
                    $value = $language->name;
131
                    break;
132
                default:
133
                    throw new \InvalidArgumentException('Language Manager does not support setting references for attribute ' . $reference['attribute']);
134
            }
135
136
            $overwrite = false;
137
            if (isset($reference['overwrite'])) {
138
                $overwrite = $reference['overwrite'];
139
            }
140
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
141
        }
142
143
        return true;
144
    }
145
}
146