Revision: 2602
http://archive-access.svn.sourceforge.net/archive-access/?rev=2602&view=rev
Author: bradtofel
Date: 2008-10-10 03:00:53 +0000 (Fri, 10 Oct 2008)
Log Message:
-----------
INITIAL REV (ARI-619): allows filtering of records based on either inclusion or exclusion list of HTTP response codes.
Added Paths:
-----------
trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java
Added: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java
===================================================================
--- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java (rev 0)
+++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/resourceindex/filters/HttpCodeFilter.java 2008-10-10 03:00:53 UTC (rev 2602)
@@ -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$, $Rev$
+ */
+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.
|