code: private long getLastModifiedTime(List<?> fileLists) {
      long lastModified = 0;
  
      for (Object entry : fileLists) {
        if (entry instanceof FileList) {
          FileList list = (FileList) entry;
  
          for (String fileName : list.getFiles(this.getProject())) {
            File path = list.getDir(this.getProject());
            File file = new File(path, fileName);
            lastModified = Math.max(getLastModifiedTime(file), lastModified);
          }
        } else if (entry instanceof Path) {
          Path path = (Path) entry;
          for (String src : path.list()) {
            File file = new File(src);
            lastModified = Math.max(getLastModifiedTime(file), lastModified);
          }
        }
      }
  
      return lastModified;
    }
docs: Returns the most recent modified timestamp of the file collection.
  
  Note: this must be combined into one method to account for both
  Path and FileList erasure types.
  
  @param fileLists Collection of FileList or Path
  @return Most recent modified timestamp