Changeset View
Changeset View
Standalone View
Standalone View
src/acbf/AcbfDocumentinfo.cpp
Show All 40 Lines | |||||
41 | 41 | | |||
42 | DocumentInfo::DocumentInfo(Metadata* parent) | 42 | DocumentInfo::DocumentInfo(Metadata* parent) | ||
43 | : QObject(parent) | 43 | : QObject(parent) | ||
44 | , d(new Private) | 44 | , d(new Private) | ||
45 | { | 45 | { | ||
46 | qRegisterMetaType<DocumentInfo*>("DocumentInfo*"); | 46 | qRegisterMetaType<DocumentInfo*>("DocumentInfo*"); | ||
47 | } | 47 | } | ||
48 | 48 | | |||
49 | DocumentInfo::~DocumentInfo() | 49 | DocumentInfo::~DocumentInfo() = default; | ||
50 | { | | |||
51 | delete d; | | |||
52 | } | | |||
53 | 50 | | |||
54 | Metadata * DocumentInfo::metadata() | 51 | Metadata * DocumentInfo::metadata() const | ||
55 | { | 52 | { | ||
56 | return qobject_cast<Metadata*>(parent()); | 53 | return qobject_cast<Metadata*>(parent()); | ||
57 | } | 54 | } | ||
58 | 55 | | |||
59 | void DocumentInfo::toXml(QXmlStreamWriter *writer) | 56 | void DocumentInfo::toXml(QXmlStreamWriter *writer) | ||
60 | { | 57 | { | ||
61 | writer->writeStartElement("document-info"); | 58 | writer->writeStartElement(QStringLiteral("document-info")); | ||
62 | 59 | | |||
63 | Q_FOREACH(Author* author, d->author) { | 60 | Q_FOREACH(Author* author, d->author) { | ||
64 | author->toXml(writer); | 61 | author->toXml(writer); | ||
65 | } | 62 | } | ||
66 | 63 | | |||
67 | writer->writeStartElement("creation-date"); | 64 | writer->writeStartElement(QStringLiteral("creation-date")); | ||
68 | writer->writeCharacters(d->creationDate.toString("MMMM d yyyy")); | 65 | writer->writeCharacters(d->creationDate.toString(QStringLiteral("MMMM d yyyy"))); | ||
69 | writer->writeEndElement(); | 66 | writer->writeEndElement(); | ||
70 | 67 | | |||
71 | writer->writeStartElement("source"); | 68 | writer->writeStartElement(QStringLiteral("source")); | ||
72 | Q_FOREACH(const QString& source, d->source) { | 69 | Q_FOREACH(const QString& source, d->source) { | ||
73 | writer->writeStartElement("p"); | 70 | writer->writeStartElement(QStringLiteral("p")); | ||
74 | writer->writeCharacters(source); | 71 | writer->writeCharacters(source); | ||
75 | writer->writeEndElement(); | 72 | writer->writeEndElement(); | ||
76 | } | 73 | } | ||
77 | writer->writeEndElement(); | 74 | writer->writeEndElement(); | ||
78 | 75 | | |||
79 | writer->writeStartElement("id"); | 76 | writer->writeStartElement(QStringLiteral("id")); | ||
80 | writer->writeCharacters(d->id); | 77 | writer->writeCharacters(d->id); | ||
81 | writer->writeEndElement(); | 78 | writer->writeEndElement(); | ||
82 | 79 | | |||
83 | writer->writeStartElement("version"); | 80 | writer->writeStartElement(QStringLiteral("version")); | ||
84 | writer->writeCharacters(d->version); | 81 | writer->writeCharacters(d->version); | ||
85 | writer->writeEndElement(); | 82 | writer->writeEndElement(); | ||
86 | 83 | | |||
87 | writer->writeStartElement("history"); | 84 | writer->writeStartElement(QStringLiteral("history")); | ||
88 | Q_FOREACH(const QString& history, d->history) { | 85 | Q_FOREACH(const QString& history, d->history) { | ||
89 | writer->writeStartElement("p"); | 86 | writer->writeStartElement(QStringLiteral("p")); | ||
90 | writer->writeCharacters(history); | 87 | writer->writeCharacters(history); | ||
91 | writer->writeEndElement(); | 88 | writer->writeEndElement(); | ||
92 | } | 89 | } | ||
93 | writer->writeEndElement(); | 90 | writer->writeEndElement(); | ||
94 | 91 | | |||
95 | writer->writeEndElement(); | 92 | writer->writeEndElement(); | ||
96 | } | 93 | } | ||
97 | 94 | | |||
98 | bool DocumentInfo::fromXml(QXmlStreamReader *xmlReader) | 95 | bool DocumentInfo::fromXml(QXmlStreamReader *xmlReader) | ||
99 | { | 96 | { | ||
100 | while(xmlReader->readNextStartElement()) | 97 | while(xmlReader->readNextStartElement()) | ||
101 | { | 98 | { | ||
102 | if(xmlReader->name() == "author") | 99 | if(xmlReader->name() == QStringLiteral("author")) | ||
103 | { | 100 | { | ||
104 | Author* newAuthor = new Author(metadata()); | 101 | Author* newAuthor = new Author(metadata()); | ||
105 | if(!newAuthor->fromXml(xmlReader)) { | 102 | if(!newAuthor->fromXml(xmlReader)) { | ||
106 | return false; | 103 | return false; | ||
107 | } | 104 | } | ||
108 | d->author.append(newAuthor); | 105 | d->author.append(newAuthor); | ||
109 | } | 106 | } | ||
110 | else if(xmlReader->name() == "creation-date") | 107 | else if(xmlReader->name() == QStringLiteral("creation-date")) | ||
111 | { | 108 | { | ||
112 | QString date = xmlReader->attributes().value("value").toString(); | 109 | QString date = xmlReader->attributes().value(QStringLiteral("value")).toString(); | ||
113 | if(date.isEmpty()) { | 110 | if(date.isEmpty()) { | ||
114 | date = xmlReader->readElementText(); | 111 | date = xmlReader->readElementText(); | ||
115 | } else { | 112 | } else { | ||
116 | xmlReader->skipCurrentElement(); | 113 | xmlReader->skipCurrentElement(); | ||
117 | } | 114 | } | ||
118 | setCreationDate(QDate::fromString(date)); | 115 | setCreationDate(QDate::fromString(date)); | ||
119 | } | 116 | } | ||
120 | else if(xmlReader->name() == "source") | 117 | else if(xmlReader->name() == QStringLiteral("source")) | ||
121 | { | 118 | { | ||
122 | while(xmlReader->readNextStartElement()) { | 119 | while(xmlReader->readNextStartElement()) { | ||
123 | if(xmlReader->name() == "p") { | 120 | if(xmlReader->name() == QStringLiteral("p")) { | ||
124 | d->source.append(xmlReader->readElementText(QXmlStreamReader::IncludeChildElements)); | 121 | d->source.append(xmlReader->readElementText(QXmlStreamReader::IncludeChildElements)); | ||
125 | } | 122 | } | ||
126 | else { | 123 | else { | ||
127 | xmlReader->skipCurrentElement(); | 124 | xmlReader->skipCurrentElement(); | ||
128 | } | 125 | } | ||
129 | } | 126 | } | ||
130 | } | 127 | } | ||
131 | else if(xmlReader->name() == "id") | 128 | else if(xmlReader->name() == QStringLiteral("id")) | ||
132 | { | 129 | { | ||
133 | setId(xmlReader->readElementText()); | 130 | setId(xmlReader->readElementText()); | ||
134 | } | 131 | } | ||
135 | else if(xmlReader->name() == "version") | 132 | else if(xmlReader->name() == QStringLiteral("version")) | ||
136 | { | 133 | { | ||
137 | setVersion(xmlReader->readElementText()); | 134 | setVersion(xmlReader->readElementText()); | ||
138 | } | 135 | } | ||
139 | else if(xmlReader->name() == "history") | 136 | else if(xmlReader->name() == QStringLiteral("history")) | ||
140 | { | 137 | { | ||
141 | while(xmlReader->readNextStartElement()) { | 138 | while(xmlReader->readNextStartElement()) { | ||
142 | if(xmlReader->name() == "p") { | 139 | if(xmlReader->name() == QStringLiteral("p")) { | ||
143 | d->history.append(xmlReader->readElementText(QXmlStreamReader::IncludeChildElements)); | 140 | d->history.append(xmlReader->readElementText(QXmlStreamReader::IncludeChildElements)); | ||
144 | } | 141 | } | ||
145 | else { | 142 | else { | ||
146 | xmlReader->skipCurrentElement(); | 143 | xmlReader->skipCurrentElement(); | ||
147 | } | 144 | } | ||
148 | } | 145 | } | ||
149 | } | 146 | } | ||
150 | else | 147 | else | ||
151 | { | 148 | { | ||
152 | qWarning() << Q_FUNC_INFO << "currently unsupported subsection:" << xmlReader->name(); | 149 | qWarning() << Q_FUNC_INFO << "currently unsupported subsection:" << xmlReader->name(); | ||
153 | xmlReader->skipCurrentElement(); | 150 | xmlReader->skipCurrentElement(); | ||
154 | } | 151 | } | ||
155 | } | 152 | } | ||
156 | if (xmlReader->hasError()) { | 153 | if (xmlReader->hasError()) { | ||
157 | qWarning() << Q_FUNC_INFO << "Failed to read ACBF XML document at token" << xmlReader->name() << "(" << xmlReader->lineNumber() << ":" << xmlReader->columnNumber() << ") The reported error was:" << xmlReader->errorString(); | 154 | qWarning() << Q_FUNC_INFO << "Failed to read ACBF XML document at token" << xmlReader->name() << "(" << xmlReader->lineNumber() << ":" << xmlReader->columnNumber() << ") The reported error was:" << xmlReader->errorString(); | ||
158 | } | 155 | } | ||
159 | qDebug() << Q_FUNC_INFO << "Created document information for a document created on" << creationDate() << "at version" << version(); | 156 | qDebug() << Q_FUNC_INFO << "Created document information for a document created on" << creationDate() << "at version" << version(); | ||
160 | return !xmlReader->hasError(); | 157 | return !xmlReader->hasError(); | ||
161 | } | 158 | } | ||
162 | 159 | | |||
163 | QList<Author *> DocumentInfo::author() | 160 | QList<Author *> DocumentInfo::author() const | ||
164 | { | 161 | { | ||
165 | return d->author; | 162 | return d->author; | ||
166 | } | 163 | } | ||
167 | 164 | | |||
168 | void DocumentInfo::addAuthor(Author* author) | 165 | void DocumentInfo::addAuthor(Author* author) | ||
169 | { | 166 | { | ||
170 | d->author.append(author); | 167 | d->author.append(author); | ||
171 | } | 168 | } | ||
172 | 169 | | |||
173 | void DocumentInfo::removeAuthor(Author* author) | 170 | void DocumentInfo::removeAuthor(Author* author) | ||
174 | { | 171 | { | ||
175 | d->author.removeAll(author); | 172 | d->author.removeAll(author); | ||
176 | } | 173 | } | ||
177 | 174 | | |||
178 | QDate DocumentInfo::creationDate() | 175 | QDate DocumentInfo::creationDate() const | ||
179 | { | 176 | { | ||
180 | return d->creationDate; | 177 | return d->creationDate; | ||
181 | } | 178 | } | ||
182 | 179 | | |||
183 | void DocumentInfo::setCreationDate(QDate creationDate) | 180 | void DocumentInfo::setCreationDate(const QDate& creationDate) | ||
184 | { | 181 | { | ||
185 | d->creationDate = creationDate; | 182 | d->creationDate = creationDate; | ||
186 | } | 183 | } | ||
187 | 184 | | |||
188 | QStringList DocumentInfo::source() | 185 | QStringList DocumentInfo::source() const | ||
189 | { | 186 | { | ||
190 | return d->source; | 187 | return d->source; | ||
191 | } | 188 | } | ||
192 | 189 | | |||
193 | void DocumentInfo::setSource(QStringList source) | 190 | void DocumentInfo::setSource(const QStringList& source) | ||
194 | { | 191 | { | ||
195 | d->source = source; | 192 | d->source = source; | ||
196 | } | 193 | } | ||
197 | 194 | | |||
198 | QString DocumentInfo::id() | 195 | QString DocumentInfo::id() const | ||
199 | { | 196 | { | ||
200 | return d->id; | 197 | return d->id; | ||
201 | } | 198 | } | ||
202 | 199 | | |||
203 | void DocumentInfo::setId(QString id) | 200 | void DocumentInfo::setId(const QString& id) | ||
204 | { | 201 | { | ||
205 | d->id = id; | 202 | d->id = id; | ||
206 | } | 203 | } | ||
207 | 204 | | |||
208 | QString DocumentInfo::version() | 205 | QString DocumentInfo::version() const | ||
209 | { | 206 | { | ||
210 | return d->version; | 207 | return d->version; | ||
211 | } | 208 | } | ||
212 | 209 | | |||
213 | void DocumentInfo::setVersion(QString version) | 210 | void DocumentInfo::setVersion(const QString& version) | ||
214 | { | 211 | { | ||
215 | d->version = version; | 212 | d->version = version; | ||
216 | } | 213 | } | ||
217 | 214 | | |||
218 | QStringList DocumentInfo::history() | 215 | QStringList DocumentInfo::history() const | ||
219 | { | 216 | { | ||
220 | return d->history; | 217 | return d->history; | ||
221 | } | 218 | } | ||
222 | 219 | | |||
223 | void DocumentInfo::setHistory(QStringList history) | 220 | void DocumentInfo::setHistory(const QStringList& history) | ||
224 | { | 221 | { | ||
225 | d->history = history; | 222 | d->history = history; | ||
226 | } | 223 | } | ||
227 | 224 | | |||
228 | void DocumentInfo::addHistoryLine(QString historyLine) | 225 | void DocumentInfo::addHistoryLine(const QString& historyLine) | ||
229 | { | 226 | { | ||
230 | d->history.append(historyLine); | 227 | d->history.append(historyLine); | ||
231 | } | 228 | } |