1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.any23.extractor;
19
20 import org.eclipse.rdf4j.model.IRI;
21
22
23
24
25 public class ExtractionContext {
26
27 public static final String ROOT_EXTRACTION_RESULT_ID = "root-extraction-result-id";
28
29
30
31
32 private final String extractorName;
33
34
35
36
37 private final IRI documentIRI;
38
39
40
41
42 private String defaultLanguage;
43
44
45
46
47 private final String uniqueID;
48
49 public ExtractionContext(String extractorName, IRI documentIRI, String defaultLanguage, String localID) {
50 checkNotNull(extractorName, "extractor name");
51 checkNotNull(documentIRI, "document IRI");
52 this.extractorName = extractorName;
53 this.documentIRI = documentIRI;
54 this.defaultLanguage = defaultLanguage;
55 this.uniqueID = "urn:x-any23:" + extractorName + ":" + (localID == null ? "" : localID) + ":" + documentIRI;
56 }
57
58 public ExtractionContext(String extractorName, IRI documentIRI, String defaultLanguage) {
59 this(extractorName, documentIRI, defaultLanguage, ROOT_EXTRACTION_RESULT_ID);
60 }
61
62 public ExtractionContext(String extractorName, IRI documentIRI) {
63 this(extractorName, documentIRI, null);
64 }
65
66 public ExtractionContext copy(String localID) {
67 return new ExtractionContext(getExtractorName(), getDocumentIRI(), getDefaultLanguage(), localID);
68 }
69
70 public String getExtractorName() {
71 return extractorName;
72 }
73
74 public IRI getDocumentIRI() {
75 return documentIRI;
76 }
77
78 public String getDefaultLanguage() {
79 return defaultLanguage;
80 }
81
82 public String getUniqueID() {
83 return uniqueID;
84 }
85
86 public int hashCode() {
87 return uniqueID.hashCode();
88 }
89
90 public boolean equals(Object other) {
91 if (!(other instanceof ExtractionContext))
92 return false;
93 return ((ExtractionContext) other).uniqueID.equals(uniqueID);
94 }
95
96 public String toString() {
97 return "ExtractionContext(" + uniqueID + ")";
98 }
99
100 private void checkNotNull(Object data, String desc) {
101 if (data == null)
102 throw new NullPointerException(desc + " cannot be null.");
103 }
104
105 }