public static List filterByTimestampLT()

in metron-platform/metron-pcap/src/main/java/org/apache/metron/pcap/utils/FileFilterUtil.java [98:137]


  public static List<String> filterByTimestampLT(long beginTs, long endTs, List<Path> paths) {
    List<String> filteredFiles = new ArrayList<>();

    //noinspection unchecked - hadoop fs uses non-generic Comparable interface
    Collections.sort(paths);
    Iterator<Path> filesIt = paths.iterator();
    Path leftTrailing = filesIt.hasNext() ? filesIt.next() : null;
    if (leftTrailing == null) {
      return filteredFiles;
    }
    boolean first = true;
    Long fileTS = PcapFilenameHelper.getTimestamp(leftTrailing.getName());
    if (fileTS != null
        && greaterThanOrEqualTo(fileTS, beginTs) && lessThanOrEqualTo(fileTS, endTs)) {
      filteredFiles.add(leftTrailing.toString());
      first = false;
    }

    if (first && !filesIt.hasNext()) {
      filteredFiles.add(leftTrailing.toString());
      return filteredFiles;
    }

    while (filesIt.hasNext()) {
      Path p = filesIt.next();
      fileTS = PcapFilenameHelper.getTimestamp(p.getName());
      if (fileTS != null
          && greaterThanOrEqualTo(fileTS, beginTs) && lessThanOrEqualTo(fileTS, endTs)) {
        if (first) {
          filteredFiles.add(leftTrailing.toString());
          first = false;
        }
        filteredFiles.add(p.toString());
      } else {
        leftTrailing = p;
      }
    }

    return filteredFiles;
  }