HeaderWriter.java
2.37 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package ipipan.clarin.tei.impl.io.write;
import ipipan.clarin.tei.api.entities.TEIHeader;
import ipipan.clarin.tei.api.exceptions.TEIException;
import ipipan.clarin.tei.impl.io.Constants;
import ipipan.clarin.tei.impl.utils.TimeUtils;
import java.util.Calendar;
import javax.xml.stream.XMLStreamException;
/**
*
* @author mlenart
*/
class HeaderWriter {
void writeHeader(OutWrapper out, TEIHeader header) throws TEIException {
try {
doWriteHeader(out, header);
} catch (XMLStreamException ex) {
throw new TEIException(ex);
}
}
private void doWriteHeader(OutWrapper out, TEIHeader header)
throws XMLStreamException, TEIException {
out.start("teiHeader");
if (header.getLayer() != null) {
out.attr("type", Constants.layer2AttrMap.get(header.getLayer()));
}
if (header != null) {
out.start("fileDesc");
writeTitle(out, header);
writePub(out, header);
writeSource(out, header);
out.end(); // fileDesc
// if (header != null && header.getLayer() != null)
// out.attr("type", getTypeString(header.getLayer()));
}
out.end();
}
private void writeTitle(OutWrapper out, TEIHeader header)
throws XMLStreamException {
out.start("titleStmt");
out.start("title");
out.text(header.getTitle());
out.end();
out.end();
}
private void writePub(OutWrapper out, TEIHeader header)
throws XMLStreamException {
out.start("publicationStmt");
if (header.getDistributor() != null) {
out.start("distributor");
out.text(header.getDistributor());
out.end();
}
if (header.getTime() != null) {
out.start("date");
Calendar cal = header.getTime();
out.attr("when", TimeUtils.getDateStr(cal));
out.start("time");
out.attr("when", TimeUtils.getTimeStr(cal));
if (header.getDuration() != null) {
out.attr("dur", header.getDuration());
}
out.end(); // time
out.end(); // date
}
out.end(); // publicationStmt
}
private void writeSource(OutWrapper out, TEIHeader header)
throws XMLStreamException {
if (header.getSourceDescText() != null
|| header.getRetrievedFrom() != null) {
out.start("sourceDesc");
out.start("p");
if (header.getRetrievedFrom() != null) {
out.text("Text retrieved from ");
out.startEmpty("ptr");
out.attr("target", header.getRetrievedFrom());
out.text(".");
} else {
out.text(header.getSourceDescText());
}
out.end(); // p
out.end(); // sourceDesc
}
}
}