001/* 002 * #%L 003 * Netarchivesuite - common 004 * %% 005 * Copyright (C) 2005 - 2018 The Royal Danish Library, 006 * the National Library of France and the Austrian National Library. 007 * %% 008 * This program is free software: you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation, either version 2.1 of the 011 * License, or (at your option) any later version. 012 * 013 * This program is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU General Lesser Public License for more details. 017 * 018 * You should have received a copy of the GNU General Lesser Public 019 * License along with this program. If not, see 020 * <http://www.gnu.org/licenses/lgpl-2.1.html>. 021 * #L% 022 */ 023package dk.netarkivet.common.utils.batch; 024 025import java.io.File; 026import java.io.OutputStream; 027import java.util.Date; 028 029/** 030 * Job which returns the names of all files in the archive modified after a specific date. 031 */ 032@SuppressWarnings({"serial"}) 033public class DatedFileListJob extends FileListJob { 034 035 private Date since; 036 037 /** 038 * Constructor for this class. 039 * 040 * @param since The date after which we require files to be listed. 041 */ 042 public DatedFileListJob(Date since) { 043 super(); 044 this.since = since; 045 } 046 047 /** 048 * Writes the name of the arcfile to the OutputStream if its lastModified date is more recent than "since". 049 * 050 * @param file an arcfile 051 * @param os the OutputStream to which data is to be written 052 * @return false If listing of this arcfile fails because of an error; true if the name is listed or if it is not 053 * listed because the file is too old. 054 */ 055 @Override 056 public boolean processFile(File file, OutputStream os) { 057 if (file.lastModified() > since.getTime()) { 058 return super.processFile(file, os); 059 } else { 060 return true; 061 } 062 } 063 064}