code: public List<Resource<L>> removeResource(Resource<L> doomedResource) {
          graphLockWrite.lock();
          try {
              List<Resource<L>> removedResources = new ArrayList<Resource<L>>();
              Resource<L> resourceToRemove = getResource(doomedResource.getID());
              if (resourceToRemove != null) {
                  getAllDescendants(resourceToRemove, removedResources);
                  removedResources.add(resourceToRemove);
                  removedResources.forEach(r -> this.resourcesGraph.removeVertex(r));
              }
              return Collections.unmodifiableList(removedResources);
          } finally {
              graphLockWrite.unlock();
          }
      }
docs: Remove the resource from {@link #resourcesGraph}, including all its descendants.
  
  @param doomedResource the resource to remove
  @return an unmodifiable list of {@link Resources} that were removed by this method