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
26 package org.archive.crawler.admin;
27
28 import java.io.Serializable;
29
30 import org.archive.crawler.datamodel.CandidateURI;
31 import org.archive.crawler.datamodel.CoreAttributeConstants;
32 import org.archive.crawler.datamodel.CrawlURI;
33
34 /***
35 * Record of all interesting info about the most-recent
36 * processing of a specific seed.
37 *
38 * @author gojomo
39 */
40 public class SeedRecord implements CoreAttributeConstants, Serializable {
41 private static final long serialVersionUID = -8455358640509744478L;
42 private final String uri;
43 private int statusCode;
44 private final String disposition;
45 private String redirectUri;
46
47 /***
48 * Create a record from the given CrawlURI and disposition string
49 *
50 * @param curi CrawlURI, already processed as reported to StatisticsTracker
51 * @param disposition descriptive disposition string
52 *
53 */
54 public SeedRecord(CrawlURI curi, String disposition) {
55 super();
56 this.uri = curi.toString();
57 this.statusCode = curi.getFetchStatus();
58 this.disposition = disposition;
59 if (statusCode==301 || statusCode == 302) {
60 for (CandidateURI cauri: curi.getOutCandidates()) {
61 if("location:".equalsIgnoreCase(cauri.getViaContext().
62 toString())) {
63 redirectUri = cauri.toString();
64 }
65 }
66 }
67 }
68
69 /***
70 * Constructor for when a CrawlURI is unavailable; such
71 * as when considering seeds not yet passed through as
72 * CrawlURIs.
73 *
74 * @param uri
75 * @param disposition
76 */
77 public SeedRecord(String uri, String disposition) {
78 this(uri, disposition, -1, null);
79 }
80
81 /***
82 * Create a record from the given URI, disposition, HTTP status code,
83 * and redirect URI.
84 * @param uri
85 * @param disposition
86 * @param statusCode
87 * @param redirectUri
88 */
89 public SeedRecord(String uri, String disposition, int statusCode,
90 String redirectUri) {
91 super();
92 this.uri = uri;
93 this.statusCode = statusCode;
94 this.disposition = disposition;
95 this.redirectUri = redirectUri;
96 }
97
98 /***
99 * @return Returns the disposition.
100 */
101 public String getDisposition() {
102 return disposition;
103 }
104 /***
105 * @return Returns the redirectUri.
106 */
107 public String getRedirectUri() {
108 return redirectUri;
109 }
110 /***
111 * @return Returns the statusCode.
112 */
113 public int getStatusCode() {
114 return statusCode;
115 }
116 /***
117 * @return Returns the uri.
118 */
119 public String getUri() {
120 return uri;
121 }
122 }