1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.archive.crawler.scope;
26
27
28 import org.archive.crawler.framework.Filter;
29
30 /***
31 * Superclass for Scopes which make use of "additional focus"
32 * to add items by pattern, or want to swap in alternative
33 * transitive filter.
34 *
35 * @author gojomo
36 */
37 public abstract class RefinedScope extends ClassicScope {
38 public static final String ATTR_TRANSITIVE_FILTER = "transitiveFilter";
39 public static final String ATTR_ADDITIONAL_FOCUS_FILTER =
40 "additionalScopeFocus";
41
42 Filter additionalFocusFilter;
43 Filter transitiveFilter;
44
45 @SuppressWarnings("deprecation")
46 public RefinedScope(String name) {
47 super(name);
48
49 this.additionalFocusFilter = (Filter) addElementToDefinition(
50 new org.archive.crawler.filter.FilePatternFilter(
51 ATTR_ADDITIONAL_FOCUS_FILTER));
52 this.transitiveFilter = (Filter) addElementToDefinition(
53 new org.archive.crawler.filter.TransclusionFilter(
54 ATTR_TRANSITIVE_FILTER));
55 }
56
57 /***
58 * @param o
59 * @return True if transitive filter accepts passed object.
60 */
61 protected boolean transitiveAccepts(Object o) {
62 return this.transitiveFilter.accepts(o);
63 }
64
65 protected boolean additionalFocusAccepts(Object o) {
66 return additionalFocusFilter.accepts(o);
67 }
68 }