Revision: 3528 http://archive-access.svn.sourceforge.net/archive-access/?rev=3528&view=rev Author: bradtofel Date: 2011-09-06 04:11:53 +0000 (Tue, 06 Sep 2011) Log Message: ----------- INITIAL REV: simple composite filter Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeFilter.java Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeFilter.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeFilter.java (rev 0) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/CompositeFilter.java 2011-09-06 04:11:53 UTC (rev 3528) @@ -0,0 +1,64 @@ +/* + * This file is part of the Wayback archival access software + * (http://archive-access.sourceforge.net/projects/wayback/). + * + * Licensed to the Internet Archive (IA) by one or more individual + * contributors. + * + * The IA licenses this file to You 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 org.archive.wayback.resourceindex.filters; + +import java.util.List; + +import org.archive.wayback.core.CaptureSearchResult; +import org.archive.wayback.util.ObjectFilter; + +/** + * Simple composite ObjectFilter - which includes only if all components include + * + * @author brad + * + */ +public class CompositeFilter implements ObjectFilter<CaptureSearchResult> { + private List<ObjectFilter<CaptureSearchResult>> filters; + /* (non-Javadoc) + * @see org.archive.wayback.resourceindex.SearchResultFilter#filterSearchResult(org.archive.wayback.core.SearchResult) + */ + public int filterObject(CaptureSearchResult r) { + + for(ObjectFilter<CaptureSearchResult> filter : filters) { + if(filter == null) { + return FILTER_EXCLUDE; + } + int result = filter.filterObject(r); + if(result != FILTER_INCLUDE) { + return result; + } + } + return FILTER_INCLUDE; + } + /** + * @return the filters + */ + public List<ObjectFilter<CaptureSearchResult>> getFilters() { + return filters; + } + /** + * @param filters the filters to set + */ + public void setFilters(List<ObjectFilter<CaptureSearchResult>> filters) { + this.filters = filters; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |