/**
  * {@inheritdoc}
  */
 public function rollback()
 {
     // sanity check
     if (!$this->bindingDescriptor->isLoaded()) {
         return;
     }
     // never fails with the check before
     $this->bindingDescriptor->unload();
     if ($this->previousDescriptor) {
         // never fails
         $this->bindingDescriptors->add($this->previousDescriptor);
     } else {
         // never fails
         $this->bindingDescriptors->remove($this->bindingDescriptor->getUuid());
     }
 }
 /**
  * {@inheritdoc}
  */
 public function execute()
 {
     // sanity check
     if (!$this->bindingDescriptor->isLoaded()) {
         return;
     }
     $this->containingPackage = $this->bindingDescriptor->getContainingPackage();
     $this->typeDescriptor = $this->bindingDescriptor->getTypeDescriptor();
     $uuid = $this->bindingDescriptor->getUuid();
     // never fails with the check in the beginning
     $this->bindingDescriptor->unload();
     if ($this->bindingDescriptors->contains($uuid) && $this->bindingDescriptor === $this->bindingDescriptors->get($uuid)) {
         // never fails
         $this->bindingDescriptors->remove($uuid);
         $this->wasRemoved = true;
     }
 }