code: private void computePathForInode(InodeView inode, StringBuilder builder)
        throws FileDoesNotExistException {
      long id;
      long parentId;
      String name;
      try (LockResource lr = mInodeLockManager.lockInode(inode, LockMode.READ)) {
        id = inode.getId();
        parentId = inode.getParentId();
        name = inode.getName();
      }
  
      if (isRootId(id)) {
        builder.append(AlluxioURI.SEPARATOR);
      } else if (isRootId(parentId)) {
        builder.append(AlluxioURI.SEPARATOR);
        builder.append(name);
      } else {
        Optional<Inode> parentInode = mInodeStore.get(parentId);
        if (!parentInode.isPresent()) {
          throw new FileDoesNotExistException(
              ExceptionMessage.INODE_DOES_NOT_EXIST.getMessage(parentId));
        }
  
        computePathForInode(parentInode.get(), builder);
        builder.append(AlluxioURI.SEPARATOR);
        builder.append(name);
      }
    }
docs: Appends components of the path from a given inode.
  
  @param inode the inode to compute the path for
  @param builder a {@link StringBuilder} that is updated with the path components
  @throws FileDoesNotExistException if an inode in the path does not exist