Code Duplication    Length = 41-43 lines in 3 locations

Core/Executor/LanguageManager.php 1 location

@@ 83-125 (lines=43) @@
80
     * @throws \InvalidArgumentException When trying to set a reference to an unsupported attribute
81
     * @return boolean
82
     */
83
    protected function setReferences($language, $step)
84
    {
85
        if (!array_key_exists('references', $step->dsl)) {
86
            return false;
87
        }
88
89
        if ($language instanceof LanguageCollection) {
90
            if (count($language) > 1) {
91
                throw new \InvalidArgumentException('Language Manager does not support setting references for creating/updating of multiple languages');
92
            }
93
            $language = reset($language);
94
        }
95
96
        foreach ($step->dsl['references'] as $reference) {
97
98
            switch ($reference['attribute']) {
99
                case 'language_id':
100
                case 'id':
101
                    $value = $language->id;
102
                    break;
103
                case 'enabled':
104
                    $value = $language->enabled;
105
                    break;
106
                case 'language_code':
107
                    $value = $language->languageCode;
108
                    break;
109
                case 'language_name':
110
                case 'name':
111
                    $value = $language->name;
112
                    break;
113
                default:
114
                    throw new \InvalidArgumentException('Language Manager does not support setting references for attribute ' . $reference['attribute']);
115
            }
116
117
            $overwrite = false;
118
            if (isset($reference['overwrite'])) {
119
                $overwrite = $reference['overwrite'];
120
            }
121
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
122
        }
123
124
        return true;
125
    }
126
}
127

Core/Executor/SectionManager.php 1 location

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

Core/Executor/UserManager.php 1 location

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