@Override public synchronized Iterable<MFile> getFilesSorted() { if (map == null) try { scanFirstTime(); // never scanned } catch (IOException e) { e.printStackTrace(); return Collections.emptyList(); } List<MFile> result = new ArrayList<>(map.values()); if (hasDateExtractor()) { Collections.sort(result, new DateSorter()); } else { Collections.sort(result); } return result; }
@Override public Iterable<MFile> getFiles() { if (map == null) try { scanFirstTime(); // never scanned } catch (IOException e) { e.printStackTrace(); return Collections.emptyList(); } List<MFile> result = new ArrayList<MFile>(map.values()); if (hasDateExtractor()) { Collections.sort(result, new DateSorter()); } else { Collections.sort(result); } return result; }
@Override public synchronized Iterable<MFile> getFilesSorted() { if (map == null) try { scanFirstTime(); // never scanned } catch (IOException e) { e.printStackTrace(); return Collections.emptyList(); } List<MFile> result = new ArrayList<>(map.values()); if (hasDateExtractor()) { Collections.sort(result, new DateSorter()); } else { Collections.sort(result); } return result; }
public CalendarDateRange update() throws IOException { datasets = new ArrayList<>(); manager.scan(false); for (MFile f : manager.getFilesSorted()) datasets.add(new Dataset(f)); if (manager.hasDateExtractor()) { if (datasets.size() == 1) { Dataset ds = datasets.get(0); if (ds.start != null) dateRange = CalendarDateRange.of(ds.start, ds.start); // LOOK ?? } else if (datasets.size() > 1) { for (int i = 0; i < datasets.size() - 1; i++) { Dataset d1 = datasets.get(i); Dataset d2 = datasets.get(i + 1); d1.setDateRange(CalendarDateRange.of(d1.start, d2.start)); if (i == datasets.size() - 2) // last one d2.setDateRange(new CalendarDateRange(d2.start, d1.getDateRange().getDurationInSecs())); } Dataset first = datasets.get(0); Dataset last = datasets.get(datasets.size() - 1); dateRange = CalendarDateRange.of(first.getDateRange().getStart(), last.getDateRange().getEnd()); } } return dateRange; }