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