Code Duplication    Length = 29-32 lines in 2 locations

src/JsonDiscovery.php 2 locations

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