@Override
 public Optional<T> lookupComputedNode(Cell cell, BuildTarget target)
     throws BuildTargetException {
   try (AutoCloseableLock readLock = rawAndComputedNodesLock.readLock()) {
     return Optional.fromNullable(allComputedNodes.getIfPresent(target));
   }
 }
 @Override
 public T putComputedNodeIfNotPresent(Cell cell, BuildTarget target, T targetNode)
     throws BuildTargetException {
   try (AutoCloseableLock writeLock = rawAndComputedNodesLock.writeLock()) {
     T updatedNode = allComputedNodes.get(target, targetNode);
     if (updatedNode.equals(targetNode)) {
       targetsCornucopia.put(target.getUnflavoredBuildTarget(), target);
     }
     return updatedNode;
   }
 }