From: <bra...@us...> - 2008-10-28 23:57:32
|
Revision: 2628 http://archive-access.svn.sourceforge.net/archive-access/?rev=2628&view=rev Author: bradtofel Date: 2008-10-28 23:57:25 +0000 (Tue, 28 Oct 2008) Log Message: ----------- NEW FEATURE(ACC-43): allows filtering records based on arbitrarily configured ObjectFilter. Modified Paths: -------------- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java Modified: branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java =================================================================== --- branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java 2008-10-28 23:53:49 UTC (rev 2627) +++ branches/wayback-1_4_1/wayback-core/src/main/java/org/archive/wayback/resourceindex/LocalResourceIndex.java 2008-10-28 23:57:25 UTC (rev 2628) @@ -86,6 +86,8 @@ private boolean dedupeRecords = false; private ObjectFilter<CaptureSearchResult> annotater = null; + + private ObjectFilter<CaptureSearchResult> filter = null; public LocalResourceIndex() { canonicalizer = new AggressiveUrlCanonicalizer(); @@ -122,7 +124,7 @@ CaptureSearchResults results = new CaptureSearchResults(); CaptureQueryFilterState filterState = - new CaptureQueryFilterState(wbRequest,canonicalizer, type); + new CaptureQueryFilterState(wbRequest,canonicalizer, type, filter); String keyUrl = filterState.getKeyUrl(); CloseableIterator<CaptureSearchResult> itr = getCaptureIterator(keyUrl); @@ -159,7 +161,7 @@ CaptureQueryFilterState filterState = new CaptureQueryFilterState(wbRequest,canonicalizer, - CaptureQueryFilterState.TYPE_URL); + CaptureQueryFilterState.TYPE_URL, filter); String keyUrl = filterState.getKeyUrl(); CloseableIterator<CaptureSearchResult> citr = getCaptureIterator(keyUrl); @@ -287,6 +289,14 @@ public void setAnnotater(ObjectFilter<CaptureSearchResult> annotater) { this.annotater = annotater; } + + public ObjectFilter<CaptureSearchResult> getFilter() { + return filter; + } + + public void setFilter(ObjectFilter<CaptureSearchResult> filter) { + this.filter = filter; + } private class CaptureQueryFilterState { public final static int TYPE_REPLAY = 0; @@ -302,7 +312,8 @@ private String exactDate; public CaptureQueryFilterState(WaybackRequest request, - UrlCanonicalizer canonicalizer, int type) + UrlCanonicalizer canonicalizer, int type, + ObjectFilter<CaptureSearchResult> genericFilter) throws BadQueryException { String searchUrl = request.getRequestUrl(); @@ -333,6 +344,9 @@ preExclusionCounter = new CounterFilter(); DateRangeFilter drFilter = new DateRangeFilter(startDate,endDate); + if(genericFilter != null) { + filter.addFilter(genericFilter); + } // has the user asked for only results on the exact host specified? ObjectFilter<CaptureSearchResult> exactHost = getExactHostFilter(request); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |