@@ 280-311 (lines=32) @@ | ||
277 | /** |
|
278 | * {@inheritdoc} |
|
279 | */ |
|
280 | public function removeBinding(Uuid $uuid) |
|
281 | { |
|
282 | if (null === $this->json) { |
|
283 | $this->load(); |
|
284 | } |
|
285 | ||
286 | $uuidString = $uuid->toString(); |
|
287 | ||
288 | if (!isset($this->json['keysByUuid'][$uuidString])) { |
|
289 | return; |
|
290 | } |
|
291 | ||
292 | $key = $this->json['keysByUuid'][$uuidString]; |
|
293 | ||
294 | if (!isset($this->bindingsByKey[$key])) { |
|
295 | $this->loadBindingsForKey($key); |
|
296 | } |
|
297 | ||
298 | foreach ($this->bindingsByKey[$key] as $i => $binding) { |
|
299 | if ($binding->getUuid()->equals($uuid)) { |
|
300 | unset($this->bindingsByKey[$key][$i]); |
|
301 | } |
|
302 | } |
|
303 | ||
304 | $this->reindexBindingsForKey($key); |
|
305 | ||
306 | unset($this->json['keysByUuid'][$uuidString]); |
|
307 | ||
308 | $this->json['bindingsByKey'][$key] = serialize($this->bindingsByKey[$key]); |
|
309 | ||
310 | $this->flush(); |
|
311 | } |
|
312 | ||
313 | /** |
|
314 | * {@inheritdoc} |
|
@@ 482-510 (lines=29) @@ | ||
479 | /** |
|
480 | * {@inheritdoc} |
|
481 | */ |
|
482 | protected function removeBindingsWithTypeNameThatMatch($typeName, Expression $expr) |
|
483 | { |
|
484 | if (null === $this->json) { |
|
485 | $this->load(); |
|
486 | } |
|
487 | ||
488 | if (!isset($this->json['keysByTypeName'][$typeName])) { |
|
489 | return; |
|
490 | } |
|
491 | ||
492 | $key = $this->json['keysByTypeName'][$typeName]; |
|
493 | ||
494 | if (!isset($this->bindingsByKey[$key])) { |
|
495 | $this->loadBindingsForKey($key); |
|
496 | } |
|
497 | ||
498 | foreach ($this->bindingsByKey[$key] as $i => $binding) { |
|
499 | if ($expr->evaluate($binding)) { |
|
500 | unset($this->bindingsByKey[$key][$i]); |
|
501 | unset($this->json['keysByUuid'][$binding->getUuid()->toString()]); |
|
502 | } |
|
503 | } |
|
504 | ||
505 | $this->reindexBindingsForKey($key); |
|
506 | ||
507 | $this->json['bindingsByKey'][$key] = serialize($this->bindingsByKey[$key]); |
|
508 | ||
509 | $this->flush(); |
|
510 | } |
|
511 | ||
512 | /** |
|
513 | * {@inheritdoc} |