public String encodeFileUri(String fileUriStr, String fileChecksum, String encodedSubDir)
          throws IOException {
    if (instance == null) {
      throw new IllegalStateException("Uninitialized ReplChangeManager instance.");
    }
    Path cmRootPath = getCmRoot(new Path(fileUriStr));
    String cmRoot = null;
    if (cmRootPath != null) {
      cmRoot = FileUtils.makeQualified(cmRootPath, conf).toString();
    }
    return ReplChangeManager.encodeFileUri(fileUriStr, fileChecksum, cmRoot, encodedSubDir);
  }
Concatenate filename, checksum, source cmroot uri and subdirectory with "#"
@param fileUriStr Filename string
@param fileChecksum Checksum string
@param encodedSubDir sub directory path into which this file belongs to. Here encoded means,
                     the multiple levels of subdirectories are concatenated with path separator "/"
@return Concatenated Uri string
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/ReplChangeManager.java