code: public static MutableInodeFile fromJournalEntry(InodeFileEntry entry) {
      // If journal entry has no mode set, set default mode for backwards-compatibility.
      MutableInodeFile ret = new MutableInodeFile(BlockId.getContainerId(entry.getId()))
          .setName(entry.getName())
          .setBlockIds(entry.getBlocksList())
          .setBlockSizeBytes(entry.getBlockSizeBytes())
          .setCacheable(entry.getCacheable())
          .setCompleted(entry.getCompleted())
          .setCreationTimeMs(entry.getCreationTimeMs())
          .setLastModificationTimeMs(entry.getLastModificationTimeMs(), true)
          .setLength(entry.getLength())
          .setParentId(entry.getParentId())
          .setPersistenceState(PersistenceState.valueOf(entry.getPersistenceState()))
          .setPinned(entry.getPinned())
          .setPersistJobId(entry.getPersistJobId())
          .setReplicationDurable(entry.getReplicationDurable())
          .setReplicationMax(entry.getReplicationMax())
          .setReplicationMin(entry.getReplicationMin())
          .setTempUfsPath(entry.getTempUfsPath())
          .setTtl(entry.getTtl())
          .setTtlAction((ProtobufUtils.fromProtobuf(entry.getTtlAction())))
          .setUfsFingerprint(entry.hasUfsFingerprint() ? entry.getUfsFingerprint() :
              Constants.INVALID_UFS_FINGERPRINT);
      if (entry.hasAcl()) {
        ret.mAcl = ProtoUtils.fromProto(entry.getAcl());
      } else {
        // Backward compatibility.
        AccessControlList acl = new AccessControlList();
        acl.setOwningUser(entry.getOwner());
        acl.setOwningGroup(entry.getGroup());
        short mode = entry.hasMode() ? (short) entry.getMode() : Constants.DEFAULT_FILE_SYSTEM_MODE;
        acl.setMode(mode);
        ret.mAcl = acl;
      }
      return ret;
    }
docs: Converts the entry to an {@link MutableInodeFile}.
  
  @param entry the entry to convert
  @return the {@link MutableInodeFile} representation