code: public BlockMeta moveBlockMeta(BlockMeta blockMeta, TempBlockMeta tempBlockMeta)
        throws BlockDoesNotExistException, WorkerOutOfSpaceException, BlockAlreadyExistsException {
      StorageDir srcDir = blockMeta.getParentDir();
      StorageDir dstDir = tempBlockMeta.getParentDir();
      srcDir.removeBlockMeta(blockMeta);
      BlockMeta newBlockMeta =
          new BlockMeta(blockMeta.getBlockId(), blockMeta.getBlockSize(), dstDir);
      dstDir.removeTempBlockMeta(tempBlockMeta);
      dstDir.addBlockMeta(newBlockMeta);
      return newBlockMeta;
    }
docs: Moves an existing block to another location currently hold by a temp block.
  
  @param blockMeta the metadata of the block to move
  @param tempBlockMeta a placeholder in the destination directory
  @return the new block metadata if success, absent otherwise
  @throws BlockDoesNotExistException when the block to move is not found
  @throws BlockAlreadyExistsException when the block to move already exists in the destination
  @throws WorkerOutOfSpaceException when destination have no extra space to hold the block to
  move