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