| @@ 170-193 (lines=24) @@ | ||
| 167 | /** |
|
| 168 | * {@inheritdoc} |
|
| 169 | */ |
|
| 170 | public function removePluginClasses(Expression $expr) |
|
| 171 | { |
|
| 172 | $save = false; |
|
| 173 | $previousClasses = $this->rootModuleFile->getPluginClasses(); |
|
| 174 | ||
| 175 | foreach ($previousClasses as $pluginClass) { |
|
| 176 | if ($expr->evaluate($pluginClass)) { |
|
| 177 | $this->rootModuleFile->removePluginClass($pluginClass); |
|
| 178 | $save = true; |
|
| 179 | } |
|
| 180 | } |
|
| 181 | ||
| 182 | if (!$save) { |
|
| 183 | return; |
|
| 184 | } |
|
| 185 | ||
| 186 | try { |
|
| 187 | $this->jsonStorage->saveRootModuleFile($this->rootModuleFile); |
|
| 188 | } catch (Exception $e) { |
|
| 189 | $this->rootModuleFile->setPluginClasses($previousClasses); |
|
| 190 | ||
| 191 | throw $e; |
|
| 192 | } |
|
| 193 | } |
|
| 194 | ||
| 195 | /** |
|
| 196 | * {@inheritdoc} |
|
| @@ 344-367 (lines=24) @@ | ||
| 341 | /** |
|
| 342 | * {@inheritdoc} |
|
| 343 | */ |
|
| 344 | public function removeExtraKeys(Expression $expr) |
|
| 345 | { |
|
| 346 | $previousValues = $this->rootModuleFile->getExtraKeys(); |
|
| 347 | $save = false; |
|
| 348 | ||
| 349 | foreach ($this->rootModuleFile->getExtraKeys() as $key => $value) { |
|
| 350 | if ($expr->evaluate($key)) { |
|
| 351 | $this->rootModuleFile->removeExtraKey($key); |
|
| 352 | $save = true; |
|
| 353 | } |
|
| 354 | } |
|
| 355 | ||
| 356 | if (!$save) { |
|
| 357 | return; |
|
| 358 | } |
|
| 359 | ||
| 360 | try { |
|
| 361 | $this->jsonStorage->saveRootModuleFile($this->rootModuleFile); |
|
| 362 | } catch (Exception $e) { |
|
| 363 | $this->rootModuleFile->setExtraKeys($previousValues); |
|
| 364 | ||
| 365 | throw $e; |
|
| 366 | } |
|
| 367 | } |
|
| 368 | ||
| 369 | /** |
|
| 370 | * {@inheritdoc} |
|