From: <bra...@us...> - 2008-10-28 23:53:57
|
Revision: 2627 http://archive-access.svn.sourceforge.net/archive-access/?rev=2627&view=rev Author: bradtofel Date: 2008-10-28 23:53:49 +0000 (Tue, 28 Oct 2008) Log Message: ----------- NEW FEATURE(ACC-43): allows filtering(include/exclude) of records based on HTTP response code. Added Paths: ----------- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java Added: branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java =================================================================== --- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java (rev 0) +++ branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java 2008-10-28 23:53:49 UTC (rev 2627) @@ -0,0 +1,74 @@ +package org.archive.wayback.resourceindex.filters; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.archive.wayback.core.CaptureSearchResult; +import org.archive.wayback.util.ObjectFilter; + +/** + * ObjectFilter which allows including or excluding results based on the + * Http response code. + * + * @author brad + * @version $Date: 2008-10-10 18:59:57 -0700 (Fri, 10 Oct 2008) $, $Rev: 2606 $ + */ +public class HttpCodeFilter implements ObjectFilter<CaptureSearchResult> { + + private Map<String,Object> includes = null; + private Map<String,Object> excludes = null; + + private static Map<String,Object> listToMap(List<String> list) { + if(list == null) { + return null; + } + HashMap<String, Object> map = new HashMap<String, Object>(); + for(String s : list) { + map.put(s, null); + } + return map; + } + private static List<String> mapToList(Map<String,Object> map) { + if(map == null) { + return null; + } + List<String> list = new ArrayList<String>(); + list.addAll(map.keySet()); + return list; + } + + public List<String> getIncludes() { + return mapToList(includes); + } + + public void setIncludes(List<String> includes) { + this.includes = listToMap(includes); + } + + + public List<String> getExcludes() { + return mapToList(excludes); + } + + + public void setExcludes(List<String> excludes) { + this.excludes = listToMap(excludes); + } + + public int filterObject(CaptureSearchResult o) { + String code = o.getHttpCode(); + if(excludes != null) { + if(excludes.containsKey(code)) { + return FILTER_EXCLUDE; + } + } + if(includes != null) { + if(!includes.containsKey(code)) { + return FILTER_EXCLUDE; + } + } + return FILTER_INCLUDE; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |