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/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