/* * Copyright 2012 jMethods, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.myjavaworld.jftp; import com.myjavaworld.util.DateFilter; import com.myjavaworld.util.Filter; import com.myjavaworld.util.RegexFilter; /** * @author Sai Pullabhotla, psai [at] jMethods [dot] com * @version 1.0 */ public class LocalFileFilter implements Filter { private RegexFilter regexFilter = null; private DateFilter dateFilter = null; private boolean showHiddenFiles = true; private boolean exclusionFilter = false; /** * Creates an instance of <code>LocalFileFilter</code>. */ public LocalFileFilter() { this(null, null, true, false); } /** * Creates an instance of <code>LocalFileFilter</code>. * * @param regexFilter * @param dateFilter */ public LocalFileFilter(RegexFilter regexFilter, DateFilter dateFilter) { this(regexFilter, dateFilter, true, false); } /** * Creates an instance of <code>LocalFileFilter</code>. * * @param regexFilter * @param dateFilter * @param showHiddenFiles */ public LocalFileFilter(RegexFilter regexFilter, DateFilter dateFilter, boolean showHiddenFiles) { this(regexFilter, dateFilter, showHiddenFiles, false); } public LocalFileFilter(RegexFilter regexFilter, DateFilter dateFilter, boolean showHiddenFiles, boolean exclusionFilter) { setRegexFilter(regexFilter); setDateFilter(dateFilter); setShowHiddenFiles(showHiddenFiles); setExclusionFilter(exclusionFilter); } /** * @return Returns the dateFilter. */ public DateFilter getDateFilter() { return dateFilter; } /** * @param dateFilter * The dateFilter to set. */ public void setDateFilter(DateFilter dateFilter) { this.dateFilter = dateFilter; } /** * @return Returns the regexFilter. */ public RegexFilter getRegexFilter() { return regexFilter; } /** * @param regexFilter * The regexFilter to set. */ public void setRegexFilter(RegexFilter regexFilter) { this.regexFilter = regexFilter; } /** * @return Returns the showHiddenFiles. */ public boolean isShowHiddenFiles() { return showHiddenFiles; } /** * @param showHiddenFiles * The showHiddenFiles to set. */ public void setShowHiddenFiles(boolean showHiddenFiles) { this.showHiddenFiles = showHiddenFiles; } public void setExclusionFilter(boolean exclusionFilter) { this.exclusionFilter = exclusionFilter; } public boolean isExclusionFilter() { return exclusionFilter; } public boolean accept(Object value) { LocalFile lf = (LocalFile) value; if (!showHiddenFiles && lf.isHidden()) { return exclusionFilter ? true : false; } if (lf.isFile()) { if (regexFilter != null) { if (!regexFilter.accept(lf.getName())) { return exclusionFilter ? true : false; } } if (dateFilter != null) { if (!dateFilter.accept(new Long(lf.getLastModified()))) { return exclusionFilter ? true : false; } } return exclusionFilter ? false : true; } return true; } }