001 /*
002 * Copyright 2011 The Kuali Foundation.
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.kfs.sys.batch;
017
018 import java.util.Date;
019 import java.util.HashMap;
020 import java.util.List;
021
022 import org.kuali.kfs.sys.batch.service.FilePurgeService;
023
024 /**
025 *
026 * Purges old files from the reports directory specified in build.properties
027 */
028 public class FilePurgeStep extends AbstractStep {
029
030 private List<String> directories;
031 private List<FilePurgeCustomAge> customAges;
032 private FilePurgeService filePurgeService;
033
034 /**
035 * Deletes all files in the temporary directory that are over 1 day old
036 *
037 * @see org.kuali.kfs.sys.batch.Step#execute(String, Date)
038 */
039 public boolean execute(String jobName, Date jobRunDate) throws InterruptedException {
040 for (String directory : directories) {
041 getFilePurgeService().purgeFiles(directory, customAges);
042 }
043
044 return true;
045 }
046
047 /**
048 * Gets the directories attribute.
049 * @return Returns the directories.
050 */
051 public List getDirectories() {
052 return directories;
053 }
054
055 /**
056 * Sets the directories attribute value.
057 * @param directories The directories to set.
058 */
059 public void setDirectories(List directories) {
060 this.directories = directories;
061 }
062
063 /**
064 * Gets the customAges attribute.
065 * @return Returns the customAges.
066 */
067 public List getCustomAges() {
068 return customAges;
069 }
070
071 /**
072 * Sets the customAges attribute value.
073 * @param customAges The customAges to set.
074 */
075 public void setCustomAges(List customAge) {
076 this.customAges = customAge;
077 }
078
079 /**
080 * Gets the filePurgeService attribute.
081 * @return Returns the filePurgeService.
082 */
083 public FilePurgeService getFilePurgeService() {
084 return filePurgeService;
085 }
086
087 /**
088 * Sets the filePurgeService attribute value.
089 * @param filePurgeService The filePurgeService to set.
090 */
091 public void setFilePurgeService(FilePurgeService filePurgeService) {
092 this.filePurgeService = filePurgeService;
093 }
094 }