blob: 8c0fb148322f99c316aa903843c80e91d9583dde [file] [log] [blame]
Nils Diewaldf399a672013-11-18 17:55:22 +00001package de.ids_mannheim.korap.index;
2
Nils Diewalde4986d72015-02-27 17:35:00 +00003import de.ids_mannheim.korap.index.MultiTermTokenStream;
4import de.ids_mannheim.korap.index.MultiTermToken;
5import de.ids_mannheim.korap.index.AbstractDocument;
Nils Diewaldc383ed02015-02-26 21:35:22 +00006import de.ids_mannheim.korap.util.KrillDate;
Nils Diewald5c375702015-02-09 20:58:24 +00007import de.ids_mannheim.korap.util.CorpusDataException;
Nils Diewaldf399a672013-11-18 17:55:22 +00008
9import com.fasterxml.jackson.annotation.*;
10import com.fasterxml.jackson.databind.ObjectMapper;
Nils Diewaldba197f22014-11-01 17:21:46 +000011import com.fasterxml.jackson.databind.JsonNode;
Akron91c60112015-09-24 22:05:40 +020012import com.fasterxml.jackson.databind.node.ObjectNode;
Nils Diewaldf399a672013-11-18 17:55:22 +000013
Nils Diewald15aa3482015-02-26 18:14:34 +000014import org.apache.lucene.document.Document;
Nils Diewaldf399a672013-11-18 17:55:22 +000015import org.apache.lucene.document.TextField;
16import org.apache.lucene.document.StringField;
Nils Diewald010c10f2013-12-17 01:58:31 +000017import org.apache.lucene.document.StoredField;
Nils Diewaldf399a672013-11-18 17:55:22 +000018import org.apache.lucene.document.IntField;
19import org.apache.lucene.document.Field;
20import org.apache.lucene.document.FieldType;
Akron700c1eb2015-09-25 16:57:30 +020021import org.apache.lucene.index.IndexOptions;
Nils Diewaldf399a672013-11-18 17:55:22 +000022
23import java.util.*;
24
Nils Diewaldf399a672013-11-18 17:55:22 +000025/*
Akron9c5b6c82016-10-11 14:43:06 +020026 TODO: Store primary data at base/cons field.
Nils Diewaldff6f7662014-09-21 15:08:52 +000027 All other Termvectors should have no stored field!
Akron9c5b6c82016-10-11 14:43:06 +020028
29 TODO: Currently Character offsets are stored with positional
30 information in the token stream. This is bad!
31 The character offset may need a special encoding in Lucene
32 To store the character offsets directly (not in the payloads),
33 to make this less messy and speed things up.
Nils Diewaldf399a672013-11-18 17:55:22 +000034*/
35
36/**
Nils Diewaldc99ed5b2015-01-21 22:08:53 +000037 * FieldDocument represents a simple API to create documents
Nils Diewalda14ecd62015-02-26 21:00:20 +000038 * for storing with KrillIndex. <i>Field</i> in the name resembles
Nils Diewaldc99ed5b2015-01-21 22:08:53 +000039 * the meaning of Lucene index fields.
Nils Diewaldbb33da22015-03-04 16:24:25 +000040 *
Nils Diewaldc99ed5b2015-01-21 22:08:53 +000041 * @author diewald
Nils Diewaldf399a672013-11-18 17:55:22 +000042 */
43@JsonIgnoreProperties(ignoreUnknown = true)
Nils Diewald15aa3482015-02-26 18:14:34 +000044public class FieldDocument extends AbstractDocument {
Nils Diewaldf399a672013-11-18 17:55:22 +000045 ObjectMapper mapper = new ObjectMapper();
46
Akron91c60112015-09-24 22:05:40 +020047 @JsonIgnore
Nils Diewaldf399a672013-11-18 17:55:22 +000048 public Document doc = new Document();
Nils Diewaldbb33da22015-03-04 16:24:25 +000049 private FieldType tvField = new FieldType(TextField.TYPE_STORED);
Nils Diewaldf399a672013-11-18 17:55:22 +000050 private FieldType tvNoField = new FieldType(TextField.TYPE_NOT_STORED);
Nils Diewaldbb33da22015-03-04 16:24:25 +000051 private FieldType keywords = new FieldType(TextField.TYPE_STORED);
Nils Diewaldf399a672013-11-18 17:55:22 +000052
53 {
Nils Diewald94870ae2014-12-09 14:35:29 +000054 tvField.setStoreTermVectors(true);
55 tvField.setStoreTermVectorPositions(true);
56 tvField.setStoreTermVectorPayloads(true);
57 tvField.setStoreTermVectorOffsets(false);
Nils Diewaldf399a672013-11-18 17:55:22 +000058
Nils Diewald94870ae2014-12-09 14:35:29 +000059 tvNoField.setStoreTermVectors(true);
60 tvNoField.setStoreTermVectorPositions(true);
61 tvNoField.setStoreTermVectorPayloads(true);
62 tvNoField.setStoreTermVectorOffsets(false);
Nils Diewaldb0dd9552013-12-20 02:28:34 +000063
Nils Diewald94870ae2014-12-09 14:35:29 +000064 keywords.setStoreTermVectors(true);
65 keywords.setStoreTermVectorPositions(false);
66 keywords.setStoreTermVectorPayloads(false);
67 keywords.setStoreTermVectorOffsets(false);
Akron700c1eb2015-09-25 16:57:30 +020068 keywords.setIndexOptions(IndexOptions.DOCS);
Nils Diewald94870ae2014-12-09 14:35:29 +000069 };
Nils Diewaldf399a672013-11-18 17:55:22 +000070
Nils Diewaldbb33da22015-03-04 16:24:25 +000071
Nils Diewaldf399a672013-11-18 17:55:22 +000072 // see http://www.cowtowncoder.com/blog/archives/2011/07/entry_457.html
73
Nils Diewaldf399a672013-11-18 17:55:22 +000074 public void addInt (String key, int value) {
Nils Diewald94870ae2014-12-09 14:35:29 +000075 doc.add(new IntField(key, value, Field.Store.YES));
Nils Diewaldf399a672013-11-18 17:55:22 +000076 };
77
Nils Diewaldbb33da22015-03-04 16:24:25 +000078
Nils Diewaldf399a672013-11-18 17:55:22 +000079 public void addInt (String key, String value) {
Akrona9d4c422017-04-28 21:18:59 +020080 if (value != null)
81 this.addInt(key, Integer.parseInt(value));
Nils Diewaldf399a672013-11-18 17:55:22 +000082 };
83
Nils Diewaldbb33da22015-03-04 16:24:25 +000084
Nils Diewaldf399a672013-11-18 17:55:22 +000085 public void addText (String key, String value) {
Nils Diewald94870ae2014-12-09 14:35:29 +000086 doc.add(new TextField(key, value, Field.Store.YES));
Nils Diewaldf399a672013-11-18 17:55:22 +000087 };
88
Nils Diewaldbb33da22015-03-04 16:24:25 +000089
Nils Diewaldb0dd9552013-12-20 02:28:34 +000090 public void addKeyword (String key, String value) {
Nils Diewald94870ae2014-12-09 14:35:29 +000091 doc.add(new Field(key, value, keywords));
Nils Diewaldb0dd9552013-12-20 02:28:34 +000092 };
93
Nils Diewaldbb33da22015-03-04 16:24:25 +000094
Nils Diewaldf399a672013-11-18 17:55:22 +000095 public void addString (String key, String value) {
Nils Diewald94870ae2014-12-09 14:35:29 +000096 doc.add(new StringField(key, value, Field.Store.YES));
Nils Diewaldf399a672013-11-18 17:55:22 +000097 };
98
Nils Diewaldbb33da22015-03-04 16:24:25 +000099
Nils Diewald010c10f2013-12-17 01:58:31 +0000100 public void addStored (String key, String value) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000101 doc.add(new StoredField(key, value));
Nils Diewald010c10f2013-12-17 01:58:31 +0000102 };
103
Nils Diewaldbb33da22015-03-04 16:24:25 +0000104
Nils Diewald010c10f2013-12-17 01:58:31 +0000105 public void addStored (String key, int value) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000106 doc.add(new StoredField(key, value));
Nils Diewald010c10f2013-12-17 01:58:31 +0000107 };
108
Nils Diewaldbb33da22015-03-04 16:24:25 +0000109
Nils Diewaldf399a672013-11-18 17:55:22 +0000110 public void addTV (String key, String value, String tsString) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000111 this.addTV(key, value, new MultiTermTokenStream(tsString));
Nils Diewaldf399a672013-11-18 17:55:22 +0000112 };
113
Nils Diewaldbb33da22015-03-04 16:24:25 +0000114
Nils Diewaldf399a672013-11-18 17:55:22 +0000115 public void addTV (String key, String tsString) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000116 this.addTV(key, new MultiTermTokenStream(tsString));
Nils Diewaldf399a672013-11-18 17:55:22 +0000117 };
118
Nils Diewaldbb33da22015-03-04 16:24:25 +0000119
Nils Diewaldf399a672013-11-18 17:55:22 +0000120 public void addTV (String key, String value, MultiTermTokenStream ts) {
Nils Diewaldbb33da22015-03-04 16:24:25 +0000121 Field textField = new Field(key, value, tvField);
122 textField.setTokenStream(ts);
Nils Diewald94870ae2014-12-09 14:35:29 +0000123 doc.add(textField);
Nils Diewaldf399a672013-11-18 17:55:22 +0000124 };
125
Nils Diewaldbb33da22015-03-04 16:24:25 +0000126
Nils Diewaldf399a672013-11-18 17:55:22 +0000127 public void addTV (String key, MultiTermTokenStream ts) {
Nils Diewaldbb33da22015-03-04 16:24:25 +0000128 Field textField = new Field(key, ts, tvNoField);
Nils Diewald94870ae2014-12-09 14:35:29 +0000129 doc.add(textField);
Nils Diewaldf399a672013-11-18 17:55:22 +0000130 };
131
Nils Diewaldbb33da22015-03-04 16:24:25 +0000132
Nils Diewaldf399a672013-11-18 17:55:22 +0000133 public String toString () {
Nils Diewald94870ae2014-12-09 14:35:29 +0000134 return doc.toString();
Nils Diewaldf399a672013-11-18 17:55:22 +0000135 };
136
Nils Diewaldbb33da22015-03-04 16:24:25 +0000137
Nils Diewaldf399a672013-11-18 17:55:22 +0000138 public MultiTermTokenStream newMultiTermTokenStream (String ts) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000139 return new MultiTermTokenStream(ts);
Nils Diewaldf399a672013-11-18 17:55:22 +0000140 };
141
Nils Diewaldbb33da22015-03-04 16:24:25 +0000142
Nils Diewaldf399a672013-11-18 17:55:22 +0000143 public MultiTermTokenStream newMultiTermTokenStream () {
Nils Diewald94870ae2014-12-09 14:35:29 +0000144 return new MultiTermTokenStream();
Nils Diewaldf399a672013-11-18 17:55:22 +0000145 };
146
Nils Diewaldbb33da22015-03-04 16:24:25 +0000147
Nils Diewaldba197f22014-11-01 17:21:46 +0000148 /**
149 * Deserialize token stream data.
150 */
Nils Diewaldbb33da22015-03-04 16:24:25 +0000151 public void setData (Map<String, Object> node) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000152 this.setPrimaryData((String) node.get("text"));
Nils Diewaldba197f22014-11-01 17:21:46 +0000153
Nils Diewald94870ae2014-12-09 14:35:29 +0000154 String fieldName = (String) node.get("name");
Nils Diewaldafab8f32015-01-26 19:11:32 +0000155
Nils Diewald94870ae2014-12-09 14:35:29 +0000156 MultiTermTokenStream mtts = this.newMultiTermTokenStream();
Nils Diewaldba197f22014-11-01 17:21:46 +0000157
Nils Diewald94870ae2014-12-09 14:35:29 +0000158 // Iterate over all tokens in stream
Nils Diewaldbb33da22015-03-04 16:24:25 +0000159 for (ArrayList<String> token : (ArrayList<ArrayList<String>>) node
160 .get("stream")) {
Nils Diewaldba197f22014-11-01 17:21:46 +0000161
Nils Diewald5c375702015-02-09 20:58:24 +0000162 try {
163 // Initialize MultiTermToken
164 MultiTermToken mtt = new MultiTermToken(token.remove(0));
Nils Diewaldba197f22014-11-01 17:21:46 +0000165
Nils Diewald5c375702015-02-09 20:58:24 +0000166 // Add rest of the list
167 for (String term : token) {
168 mtt.add(term);
Nils Diewaldbb33da22015-03-04 16:24:25 +0000169 };
Nils Diewald5c375702015-02-09 20:58:24 +0000170
171 // Add MultiTermToken to stream
172 mtts.addMultiTermToken(mtt);
173
174 }
175 catch (CorpusDataException cde) {
176 this.addError(cde.getErrorCode(), cde.getMessage());
Nils Diewaldafab8f32015-01-26 19:11:32 +0000177 };
Nils Diewald94870ae2014-12-09 14:35:29 +0000178 };
Nils Diewaldba197f22014-11-01 17:21:46 +0000179
Nils Diewald94870ae2014-12-09 14:35:29 +0000180 // Add tokenstream to fielddocument
181 this.addTV(fieldName, this.getPrimaryData(), mtts);
Nils Diewaldba197f22014-11-01 17:21:46 +0000182
Nils Diewald94870ae2014-12-09 14:35:29 +0000183 // Get foundry info
184 if (node.containsKey("foundries"))
185 this.setFoundries((String) node.get("foundries"));
Nils Diewaldba197f22014-11-01 17:21:46 +0000186
Nils Diewald94870ae2014-12-09 14:35:29 +0000187 // Get layer info
188 if (node.containsKey("layerInfos"))
189 this.setLayerInfos((String) node.get("layerInfos"));
Nils Diewaldba197f22014-11-01 17:21:46 +0000190
Nils Diewald94870ae2014-12-09 14:35:29 +0000191 // Get tokenSource info
192 if (node.containsKey("tokenSource"))
193 this.setTokenSource((String) node.get("tokenSource"));
Nils Diewaldba197f22014-11-01 17:21:46 +0000194 };
195
Nils Diewaldbb33da22015-03-04 16:24:25 +0000196
Nils Diewaldba197f22014-11-01 17:21:46 +0000197 /**
198 * Deserialize token stream data (LEGACY).
199 */
Nils Diewaldafab8f32015-01-26 19:11:32 +0000200 public void setFields (ArrayList<Map<String, Object>> fields) {
Nils Diewaldbb33da22015-03-04 16:24:25 +0000201 Map<String, Object> primary = fields.remove(0);
Nils Diewald94870ae2014-12-09 14:35:29 +0000202 this.setPrimaryData((String) primary.get("primaryData"));
Nils Diewaldf399a672013-11-18 17:55:22 +0000203
Nils Diewaldbb33da22015-03-04 16:24:25 +0000204 for (Map<String, Object> field : fields) {
Nils Diewaldf399a672013-11-18 17:55:22 +0000205
Nils Diewald94870ae2014-12-09 14:35:29 +0000206 String fieldName = (String) field.get("name");
207 MultiTermTokenStream mtts = this.newMultiTermTokenStream();
Nils Diewaldba197f22014-11-01 17:21:46 +0000208
Nils Diewaldbb33da22015-03-04 16:24:25 +0000209 for (ArrayList<String> token : (ArrayList<ArrayList<String>>) field
210 .get("data")) {
Nils Diewaldf399a672013-11-18 17:55:22 +0000211
Nils Diewald5c375702015-02-09 20:58:24 +0000212 try {
213 MultiTermToken mtt = new MultiTermToken(token.remove(0));
Nils Diewaldf399a672013-11-18 17:55:22 +0000214
Nils Diewald5c375702015-02-09 20:58:24 +0000215 for (String term : token) {
216 mtt.add(term);
217 };
218
219 mtts.addMultiTermToken(mtt);
220 }
221 catch (CorpusDataException cde) {
222 this.addError(cde.getErrorCode(), cde.getMessage());
Nils Diewald94870ae2014-12-09 14:35:29 +0000223 };
Nils Diewald94870ae2014-12-09 14:35:29 +0000224 };
Nils Diewaldf399a672013-11-18 17:55:22 +0000225
Nils Diewald94870ae2014-12-09 14:35:29 +0000226 // TODO: This is normally dependend to the tokenization!
227 // Add this as meta information to the document
228 // Store this information as well as tokenization information
229 // as meta fields in the tokenization term vector
230 if (field.containsKey("foundries")) {
231 // TODO: Do not store positions!
232 String foundries = (String) field.get("foundries");
233 this.addKeyword("foundries", foundries);
234 super.setFoundries(foundries);
235 };
236 if (field.containsKey("tokenization")) {
237 String tokenization = (String) field.get("tokenization");
238 this.addString("tokenization", tokenization);
239 super.setTokenization(tokenization);
240 };
Nils Diewaldf399a672013-11-18 17:55:22 +0000241
Nils Diewald94870ae2014-12-09 14:35:29 +0000242 this.addTV(fieldName, this.getPrimaryData(), mtts);
243 };
Nils Diewaldf399a672013-11-18 17:55:22 +0000244 };
245
Nils Diewaldbb33da22015-03-04 16:24:25 +0000246
Nils Diewaldf399a672013-11-18 17:55:22 +0000247 @Override
248 public void setTextClass (String textClass) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000249 super.setTextClass(textClass);
250 this.addKeyword("textClass", textClass);
Nils Diewaldf399a672013-11-18 17:55:22 +0000251 };
252
Nils Diewaldbb33da22015-03-04 16:24:25 +0000253
Nils Diewaldf399a672013-11-18 17:55:22 +0000254 @Override
255 public void setTitle (String title) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000256 super.setTitle(title);
257 this.addText("title", title);
Nils Diewaldf399a672013-11-18 17:55:22 +0000258 };
259
Nils Diewaldbb33da22015-03-04 16:24:25 +0000260
Nils Diewaldf399a672013-11-18 17:55:22 +0000261 @Override
262 public void setSubTitle (String subTitle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000263 super.setSubTitle(subTitle);
264 this.addText("subTitle", subTitle);
Nils Diewaldf399a672013-11-18 17:55:22 +0000265 };
266
Nils Diewaldbb33da22015-03-04 16:24:25 +0000267
Nils Diewaldf399a672013-11-18 17:55:22 +0000268 @Override
269 public void setAuthor (String author) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000270 super.setAuthor(author);
271 this.addText("author", author);
Nils Diewaldf399a672013-11-18 17:55:22 +0000272 };
273
Nils Diewaldbb33da22015-03-04 16:24:25 +0000274
Nils Diewaldf399a672013-11-18 17:55:22 +0000275 @Override
276 public void setPubPlace (String pubPlace) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000277 super.setPubPlace(pubPlace);
278 this.addString("pubPlace", pubPlace);
Nils Diewaldf399a672013-11-18 17:55:22 +0000279 };
280
Nils Diewaldbb33da22015-03-04 16:24:25 +0000281
Nils Diewaldf399a672013-11-18 17:55:22 +0000282 @JsonProperty("pubDate")
283 @Override
Nils Diewaldc383ed02015-02-26 21:35:22 +0000284 public KrillDate setPubDate (String pubDate) {
285 KrillDate date = super.setPubDate(pubDate);
Akrona9d4c422017-04-28 21:18:59 +0200286 if (date != null) {
287 this.addInt("pubDate", date.toString());
288 };
Nils Diewald94870ae2014-12-09 14:35:29 +0000289 return date;
Nils Diewaldf399a672013-11-18 17:55:22 +0000290 };
291
Nils Diewaldbb33da22015-03-04 16:24:25 +0000292
Nils Diewaldba197f22014-11-01 17:21:46 +0000293 @JsonProperty("creationDate")
294 @Override
Nils Diewaldc383ed02015-02-26 21:35:22 +0000295 public KrillDate setCreationDate (String creationDate) {
296 KrillDate date = super.setCreationDate(creationDate);
Akrona9d4c422017-04-28 21:18:59 +0200297 if (date != null) {
298 this.addInt("creationDate", date.toString());
299 };
Nils Diewald94870ae2014-12-09 14:35:29 +0000300 return date;
Nils Diewaldba197f22014-11-01 17:21:46 +0000301 };
302
Nils Diewaldbb33da22015-03-04 16:24:25 +0000303
Nils Diewaldba197f22014-11-01 17:21:46 +0000304 // No longer supported
Nils Diewaldf399a672013-11-18 17:55:22 +0000305 @Override
306 public void setCorpusID (String corpusID) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000307 super.setCorpusID(corpusID);
308 this.addString("corpusID", corpusID);
Nils Diewaldf399a672013-11-18 17:55:22 +0000309 };
310
Nils Diewaldbb33da22015-03-04 16:24:25 +0000311
Nils Diewaldba197f22014-11-01 17:21:46 +0000312 // No longer supported
Nils Diewaldf399a672013-11-18 17:55:22 +0000313 @Override
314 public void setID (String ID) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000315 super.setID(ID);
316 this.addString("ID", ID);
Nils Diewaldf399a672013-11-18 17:55:22 +0000317 };
Nils Diewald010c10f2013-12-17 01:58:31 +0000318
Akron08f4ceb2016-08-03 23:53:32 +0200319
Nils Diewald010c10f2013-12-17 01:58:31 +0000320 @Override
Akron8798be82016-06-23 23:10:25 +0200321 @JsonIgnore
Nils Diewaldff6f7662014-09-21 15:08:52 +0000322 public void setUID (int ID) {
Akrond7d7b1f2016-06-25 00:31:16 +0200323 if (ID != 0) {
324 super.setUID(ID);
325 this.addString("UID", new Integer(ID).toString());
326 }
Nils Diewaldff6f7662014-09-21 15:08:52 +0000327 };
328
Akron08f4ceb2016-08-03 23:53:32 +0200329
Akron8798be82016-06-23 23:10:25 +0200330 @Override
331 public void setUID (String ID) {
332 if (ID != null) {
333 super.setUID(ID);
334 this.addString("UID", new Integer(this.UID).toString());
335 };
336 };
Nils Diewaldbb33da22015-03-04 16:24:25 +0000337
Akron08f4ceb2016-08-03 23:53:32 +0200338
Nils Diewaldba197f22014-11-01 17:21:46 +0000339 // No longer supported
Nils Diewaldff6f7662014-09-21 15:08:52 +0000340 @Override
Nils Diewald010c10f2013-12-17 01:58:31 +0000341 public void setLayerInfo (String layerInfo) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000342 super.setLayerInfo(layerInfo);
343 this.addStored("layerInfo", layerInfo);
Nils Diewald010c10f2013-12-17 01:58:31 +0000344 };
Nils Diewaldba197f22014-11-01 17:21:46 +0000345
Nils Diewaldbb33da22015-03-04 16:24:25 +0000346
Nils Diewaldba197f22014-11-01 17:21:46 +0000347 @Override
Nils Diewaldd66e2da2014-11-03 21:34:49 +0000348 public void setLayerInfos (String layerInfos) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000349 super.setLayerInfos(layerInfos);
350 this.addStored("layerInfos", layerInfos);
Nils Diewaldd66e2da2014-11-03 21:34:49 +0000351 };
352
Nils Diewaldbb33da22015-03-04 16:24:25 +0000353
Nils Diewaldd66e2da2014-11-03 21:34:49 +0000354 @Override
Nils Diewaldba197f22014-11-01 17:21:46 +0000355 public void setTextSigle (String textSigle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000356 super.setTextSigle(textSigle);
357 this.addString("textSigle", textSigle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000358 };
359
Nils Diewaldbb33da22015-03-04 16:24:25 +0000360
Nils Diewaldba197f22014-11-01 17:21:46 +0000361 @Override
362 public void setDocSigle (String docSigle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000363 super.setDocSigle(docSigle);
364 this.addString("docSigle", docSigle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000365 };
366
Nils Diewaldbb33da22015-03-04 16:24:25 +0000367
Nils Diewaldba197f22014-11-01 17:21:46 +0000368 @Override
369 public void setCorpusSigle (String corpusSigle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000370 super.setCorpusSigle(corpusSigle);
371 this.addString("corpusSigle", corpusSigle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000372 };
373
Nils Diewaldbb33da22015-03-04 16:24:25 +0000374
Nils Diewaldba197f22014-11-01 17:21:46 +0000375 @Override
376 public void setPublisher (String publisher) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000377 super.setPublisher(publisher);
378 this.addStored("publisher", publisher);
Nils Diewaldba197f22014-11-01 17:21:46 +0000379 };
380
Nils Diewaldbb33da22015-03-04 16:24:25 +0000381
Nils Diewaldba197f22014-11-01 17:21:46 +0000382 @Override
383 public void setEditor (String editor) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000384 super.setEditor(editor);
385 this.addStored("editor", editor);
Nils Diewaldba197f22014-11-01 17:21:46 +0000386 };
387
Nils Diewaldbb33da22015-03-04 16:24:25 +0000388
Nils Diewaldba197f22014-11-01 17:21:46 +0000389 @Override
390 public void setTextType (String textType) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000391 super.setTextType(textType);
392 this.addString("textType", textType);
Nils Diewaldba197f22014-11-01 17:21:46 +0000393 };
394
Nils Diewaldbb33da22015-03-04 16:24:25 +0000395
Nils Diewaldba197f22014-11-01 17:21:46 +0000396 @Override
397 public void setTextTypeArt (String textTypeArt) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000398 super.setTextTypeArt(textTypeArt);
399 this.addString("textTypeArt", textTypeArt);
Nils Diewaldba197f22014-11-01 17:21:46 +0000400 };
401
Nils Diewaldbb33da22015-03-04 16:24:25 +0000402
Nils Diewaldba197f22014-11-01 17:21:46 +0000403 @Override
404 public void setTextTypeRef (String textTypeRef) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000405 super.setTextTypeRef(textTypeRef);
406 this.addString("textTypeRef", textTypeRef);
Nils Diewaldba197f22014-11-01 17:21:46 +0000407 };
408
Nils Diewaldbb33da22015-03-04 16:24:25 +0000409
Nils Diewaldba197f22014-11-01 17:21:46 +0000410 @Override
411 public void setTextColumn (String textColumn) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000412 super.setTextColumn(textColumn);
413 this.addString("textColumn", textColumn);
Nils Diewaldba197f22014-11-01 17:21:46 +0000414 };
415
Nils Diewaldbb33da22015-03-04 16:24:25 +0000416
Nils Diewaldba197f22014-11-01 17:21:46 +0000417 @Override
418 public void setTextDomain (String textDomain) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000419 super.setTextDomain(textDomain);
420 this.addString("textDomain", textDomain);
Nils Diewaldba197f22014-11-01 17:21:46 +0000421 };
422
Nils Diewaldbb33da22015-03-04 16:24:25 +0000423
Nils Diewaldba197f22014-11-01 17:21:46 +0000424 @Override
Akron7e3a10f2017-05-05 15:36:20 +0200425 @Deprecated
Nils Diewaldba197f22014-11-01 17:21:46 +0000426 public void setLicense (String license) {
Akron7e3a10f2017-05-05 15:36:20 +0200427 super.setAvailability(license);
428 this.addString("availability", license);
Nils Diewaldba197f22014-11-01 17:21:46 +0000429 };
430
Akron7e3a10f2017-05-05 15:36:20 +0200431
432 @Override
433 public void setAvailability (String availability) {
434 super.setAvailability(availability);
435 this.addString("availability", availability);
436 };
437
438 /*
Nils Diewaldba197f22014-11-01 17:21:46 +0000439 @Override
440 public void setPages (String pages) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000441 super.setPages(pages);
442 this.addStored("pages", pages);
Nils Diewaldba197f22014-11-01 17:21:46 +0000443 };
Akron69b958c2017-02-15 22:49:45 +0100444 */
Nils Diewaldba197f22014-11-01 17:21:46 +0000445
Nils Diewaldbb33da22015-03-04 16:24:25 +0000446
Nils Diewaldba197f22014-11-01 17:21:46 +0000447 @Override
448 public void setFileEditionStatement (String fileEditionStatement) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000449 super.setFileEditionStatement(fileEditionStatement);
450 this.addStored("fileEditionStatement", fileEditionStatement);
Nils Diewaldba197f22014-11-01 17:21:46 +0000451 };
452
Nils Diewaldbb33da22015-03-04 16:24:25 +0000453
Nils Diewaldba197f22014-11-01 17:21:46 +0000454 @Override
455 public void setBiblEditionStatement (String biblEditionStatement) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000456 super.setBiblEditionStatement(biblEditionStatement);
457 this.addStored("biblEditionStatement", biblEditionStatement);
Nils Diewaldba197f22014-11-01 17:21:46 +0000458 };
459
Nils Diewaldbb33da22015-03-04 16:24:25 +0000460
Nils Diewaldba197f22014-11-01 17:21:46 +0000461 @Override
462 public void setReference (String reference) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000463 super.setReference(reference);
464 this.addStored("reference", reference);
Nils Diewaldba197f22014-11-01 17:21:46 +0000465 };
466
Nils Diewaldbb33da22015-03-04 16:24:25 +0000467
Nils Diewaldba197f22014-11-01 17:21:46 +0000468 @Override
469 public void setLanguage (String language) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000470 super.setLanguage(language);
471 this.addString("language", language);
Nils Diewaldba197f22014-11-01 17:21:46 +0000472 };
473
Nils Diewaldbb33da22015-03-04 16:24:25 +0000474
Nils Diewaldba197f22014-11-01 17:21:46 +0000475 @Override
Nils Diewald06368ba2014-11-03 20:53:27 +0000476 public void setDocTitle (String docTitle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000477 super.setDocTitle(docTitle);
478 this.addText("docTitle", docTitle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000479 };
480
Nils Diewaldbb33da22015-03-04 16:24:25 +0000481
Nils Diewaldba197f22014-11-01 17:21:46 +0000482 @Override
Nils Diewald06368ba2014-11-03 20:53:27 +0000483 public void setDocSubTitle (String docSubTitle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000484 super.setDocSubTitle(docSubTitle);
485 this.addText("docSubTitle", docSubTitle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000486 };
487
Nils Diewaldbb33da22015-03-04 16:24:25 +0000488
Nils Diewaldba197f22014-11-01 17:21:46 +0000489 @Override
Nils Diewald06368ba2014-11-03 20:53:27 +0000490 public void setDocAuthor (String docAuthor) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000491 super.setDocAuthor(docAuthor);
492 this.addText("docAuthor", docAuthor);
Nils Diewaldba197f22014-11-01 17:21:46 +0000493 };
494
Nils Diewaldbb33da22015-03-04 16:24:25 +0000495
Nils Diewaldba197f22014-11-01 17:21:46 +0000496 @Override
Nils Diewald06368ba2014-11-03 20:53:27 +0000497 public void setDocEditor (String docEditor) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000498 super.setDocEditor(docEditor);
499 this.addStored("docEditor", docEditor);
Nils Diewaldba197f22014-11-01 17:21:46 +0000500 };
501
Nils Diewaldbb33da22015-03-04 16:24:25 +0000502
Nils Diewaldba197f22014-11-01 17:21:46 +0000503 @Override
504 public void setCorpusTitle (String corpusTitle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000505 super.setCorpusTitle(corpusTitle);
506 this.addText("corpusTitle", corpusTitle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000507 };
508
Nils Diewaldbb33da22015-03-04 16:24:25 +0000509
Nils Diewaldba197f22014-11-01 17:21:46 +0000510 @Override
511 public void setCorpusSubTitle (String corpusSubTitle) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000512 super.setCorpusSubTitle(corpusSubTitle);
513 this.addText("corpusSubTitle", corpusSubTitle);
Nils Diewaldba197f22014-11-01 17:21:46 +0000514 };
515
Nils Diewaldbb33da22015-03-04 16:24:25 +0000516
Nils Diewaldba197f22014-11-01 17:21:46 +0000517 @Override
Nils Diewald06368ba2014-11-03 20:53:27 +0000518 public void setCorpusAuthor (String corpusAuthor) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000519 super.setCorpusAuthor(corpusAuthor);
520 this.addText("corpusAuthor", corpusAuthor);
Nils Diewald06368ba2014-11-03 20:53:27 +0000521 };
522
Nils Diewaldbb33da22015-03-04 16:24:25 +0000523
Nils Diewald06368ba2014-11-03 20:53:27 +0000524 @Override
525 public void setCorpusEditor (String corpusEditor) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000526 super.setCorpusEditor(corpusEditor);
527 this.addStored("corpusEditor", corpusEditor);
Nils Diewald06368ba2014-11-03 20:53:27 +0000528 };
529
Nils Diewaldbb33da22015-03-04 16:24:25 +0000530
Nils Diewald06368ba2014-11-03 20:53:27 +0000531 @Override
Nils Diewaldba197f22014-11-01 17:21:46 +0000532 public void setKeywords (String keywords) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000533 super.setKeywords(keywords);
534 this.addKeyword("keywords", keywords);
Nils Diewaldba197f22014-11-01 17:21:46 +0000535 };
536
Nils Diewaldbb33da22015-03-04 16:24:25 +0000537
Nils Diewaldba197f22014-11-01 17:21:46 +0000538 @Override
539 public void setTokenSource (String tokenSource) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000540 super.setTokenSource(tokenSource);
541 this.addStored("tokenSource", tokenSource);
Nils Diewaldba197f22014-11-01 17:21:46 +0000542 };
543
Nils Diewaldbb33da22015-03-04 16:24:25 +0000544
Nils Diewaldba197f22014-11-01 17:21:46 +0000545 @Override
546 public void setFoundries (String foundries) {
Nils Diewald94870ae2014-12-09 14:35:29 +0000547 super.setFoundries(foundries);
548 this.addKeyword("foundries", foundries);
Nils Diewaldba197f22014-11-01 17:21:46 +0000549 };
Nils Diewaldf399a672013-11-18 17:55:22 +0000550};