Code Duplication    Length = 36-39 lines in 3 locations

Core/Executor/LanguageManager.php 1 location

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

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/SectionManager.php 1 location

@@ 120-155 (lines=36) @@
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
        $references = $this->setReferencesCommon($section, $step->dsl['references']);
127
        $section = $this->insureSingleEntity($section, $references);
128
129
        foreach ($references as $reference) {
130
            switch ($reference['attribute']) {
131
                case 'section_id':
132
                case 'id':
133
                    $value = $section->id;
134
                    break;
135
                case 'section_identifier':
136
                case 'identifier':
137
                    $value = $section->identifier;
138
                    break;
139
                case 'section_name':
140
                case 'name':
141
                    $value = $section->name;
142
                    break;
143
                default:
144
                    throw new \InvalidArgumentException('Section Manager does not support setting references for attribute ' . $reference['attribute']);
145
            }
146
147
            $overwrite = false;
148
            if (isset($reference['overwrite'])) {
149
                $overwrite = $reference['overwrite'];
150
            }
151
            $this->referenceResolver->addReference($reference['identifier'], $value, $overwrite);
152
        }
153
154
        return true;
155
    }
156
157
    /**
158
     * @param array $matchCondition