00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef FB2METADATACONTEXT_H_INCLUDED
00011 #define FB2METADATACONTEXT_H_INCLUDED
00012
00013 #include "FB2ParserContext.h"
00014
00015 namespace libebook
00016 {
00017
00018 class FB2Authors;
00019
00020 class FB2AnnotationContext : public FB2BlockFormatContextBase
00021 {
00022 public:
00023 FB2AnnotationContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
00024
00025 private:
00026 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00027 virtual void startOfElement();
00028 virtual void endOfElement();
00029 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00030 virtual void text(const char *value);
00031 };
00032
00033 class FB2AuthorContext : public FB2ParserContext
00034 {
00035 public:
00036 FB2AuthorContext(FB2ParserContext *parentContext, FB2Authors &authors);
00037
00038 private:
00039 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00040 virtual void startOfElement();
00041 virtual void endOfElement();
00042 virtual void endOfAttributes() {}
00043 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00044 virtual void text(const char *value);
00045
00046 private:
00047 FB2Authors &m_authors;
00048 };
00049
00050 class FB2BookNameContext : public FB2ParserContext
00051 {
00052 public:
00053 explicit FB2BookNameContext(FB2ParserContext *parentContext);
00054
00055 private:
00056 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00057 virtual void startOfElement();
00058 virtual void endOfElement();
00059 virtual void endOfAttributes() {}
00060 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00061 virtual void text(const char *value);
00062 };
00063
00064 class FB2BookTitleContext : public FB2ParserContext
00065 {
00066 public:
00067 explicit FB2BookTitleContext(FB2ParserContext *parentContext);
00068
00069 private:
00070 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00071 virtual void startOfElement();
00072 virtual void endOfElement();
00073 virtual void endOfAttributes() {}
00074 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00075 virtual void text(const char *value);
00076 };
00077
00078 class FB2CityContext : public FB2ParserContext
00079 {
00080 public:
00081 explicit FB2CityContext(FB2ParserContext *parentContext);
00082
00083 private:
00084 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00085 virtual void startOfElement();
00086 virtual void endOfElement();
00087 virtual void endOfAttributes() {}
00088 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00089 virtual void text(const char *value);
00090 };
00091
00092 class FB2CoverpageContext : public FB2ParserContext
00093 {
00094 public:
00095 explicit FB2CoverpageContext(FB2ParserContext *parentContext);
00096
00097 private:
00098 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00099 virtual void startOfElement();
00100 virtual void endOfElement();
00101 virtual void endOfAttributes() {}
00102 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00103 virtual void text(const char *value);
00104 };
00105
00106 class FB2CustomInfoContext : public FB2ParserContext
00107 {
00108 public:
00109 explicit FB2CustomInfoContext(FB2ParserContext *parentContext);
00110
00111 private:
00112 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00113 virtual void startOfElement();
00114 virtual void endOfElement();
00115 virtual void endOfAttributes() {}
00116 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00117 virtual void text(const char *value);
00118
00119 private:
00120 librevenge::RVNGString m_type;
00121 librevenge::RVNGString m_text;
00122 };
00123
00124 class FB2DateContext : public FB2ParserContext
00125 {
00126
00127 FB2DateContext(const FB2DateContext &);
00128 FB2DateContext &operator=(const FB2DateContext &);
00129
00130 public:
00131 FB2DateContext(FB2ParserContext *parentContext, const char *name);
00132
00133 private:
00134 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00135 virtual void startOfElement();
00136 virtual void endOfElement();
00137 virtual void endOfAttributes() {}
00138 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00139 virtual void text(const char *value);
00140
00141 private:
00142 const char *const m_name;
00143 };
00144
00145 class FB2DescriptionContext : public FB2ParserContext
00146 {
00147 public:
00148 FB2DescriptionContext(FB2ParserContext *parentContext, FB2Collector *collector);
00149
00150 private:
00151 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00152 virtual void startOfElement();
00153 virtual void endOfElement();
00154 virtual void endOfAttributes() {}
00155 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00156 virtual void text(const char *value);
00157 };
00158
00159 class TextInfoContext : public FB2ParserContext
00160 {
00161
00162 TextInfoContext(const TextInfoContext &other);
00163 TextInfoContext &operator=(const TextInfoContext &other);
00164
00165 public:
00166 TextInfoContext(FB2ParserContext *parentContext);
00167
00168 private:
00169 virtual ~TextInfoContext();
00170
00171 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00172 virtual void startOfElement();
00173 virtual void endOfElement();
00174 virtual void endOfAttributes() {}
00175 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00176 virtual void text(const char *value);
00177
00178 private:
00179 FB2Authors *m_authors;
00180 };
00181
00182 class FB2EmailContext : public FB2ParserContext
00183 {
00184 public:
00185 explicit FB2EmailContext(FB2ParserContext *parentContext);
00186
00187 private:
00188 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00189 virtual void startOfElement();
00190 virtual void endOfElement();
00191 virtual void endOfAttributes() {}
00192 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00193 virtual void text(const char *value);
00194 };
00195
00196 class FB2FirstNameContext : public FB2ParserContext
00197 {
00198 public:
00199 FB2FirstNameContext(FB2ParserContext *parentContext, FB2Authors &authors);
00200
00201 private:
00202 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00203 virtual void startOfElement();
00204 virtual void endOfElement();
00205 virtual void endOfAttributes() {}
00206 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00207 virtual void text(const char *value);
00208
00209 private:
00210 FB2Authors &m_authors;
00211 };
00212
00213 class FB2GenreContext : public FB2ParserContext
00214 {
00215 public:
00216 explicit FB2GenreContext(FB2ParserContext *parentContext);
00217
00218 private:
00219 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00220 virtual void startOfElement();
00221 virtual void endOfElement();
00222 virtual void endOfAttributes() {}
00223 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00224 virtual void text(const char *value);
00225 };
00226
00227 class FB2HistoryContext : public FB2ParserContext
00228 {
00229 public:
00230 explicit FB2HistoryContext(FB2ParserContext *parentContext);
00231
00232 private:
00233 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00234 virtual void startOfElement();
00235 virtual void endOfElement();
00236 virtual void endOfAttributes() {}
00237 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00238 virtual void text(const char *value);
00239 };
00240
00241 class FB2HomePageContext : public FB2ParserContext
00242 {
00243 public:
00244 explicit FB2HomePageContext(FB2ParserContext *parentContext);
00245
00246 private:
00247 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00248 virtual void startOfElement();
00249 virtual void endOfElement();
00250 virtual void endOfAttributes() {}
00251 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00252 virtual void text(const char *value);
00253 };
00254
00255 class FB2IdContext : public FB2ParserContext
00256 {
00257 public:
00258 explicit FB2IdContext(FB2ParserContext *parentContext);
00259
00260 private:
00261 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00262 virtual void startOfElement();
00263 virtual void endOfElement();
00264 virtual void endOfAttributes() {}
00265 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00266 virtual void text(const char *value);
00267 };
00268
00269 class FB2IsbnContext : public FB2ParserContext
00270 {
00271 public:
00272 explicit FB2IsbnContext(FB2ParserContext *parentContext);
00273
00274 private:
00275 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00276 virtual void startOfElement();
00277 virtual void endOfElement();
00278 virtual void endOfAttributes() {}
00279 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00280 virtual void text(const char *value);
00281 };
00282
00283 class FB2KeywordsContext : public FB2ParserContext
00284 {
00285 public:
00286 explicit FB2KeywordsContext(FB2ParserContext *parentContext);
00287
00288 private:
00289 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00290 virtual void startOfElement();
00291 virtual void endOfElement();
00292 virtual void endOfAttributes() {}
00293 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00294 virtual void text(const char *value);
00295 };
00296
00297 class FB2LangContext : public FB2ParserContext
00298 {
00299 public:
00300 explicit FB2LangContext(FB2ParserContext *parentContext);
00301
00302 private:
00303 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00304 virtual void startOfElement();
00305 virtual void endOfElement();
00306 virtual void endOfAttributes() {}
00307 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00308 virtual void text(const char *value);
00309 };
00310
00311 class FB2LastNameContext : public FB2ParserContext
00312 {
00313 public:
00314 FB2LastNameContext(FB2ParserContext *parentContext, FB2Authors &authors);
00315
00316 private:
00317 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00318 virtual void startOfElement();
00319 virtual void endOfElement();
00320 virtual void endOfAttributes() {}
00321 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00322 virtual void text(const char *value);
00323
00324 private:
00325 FB2Authors &m_authors;
00326 };
00327
00328 class FB2MiddleNameContext : public FB2ParserContext
00329 {
00330 public:
00331 FB2MiddleNameContext(FB2ParserContext *parentContext, FB2Authors &authors);
00332
00333 private:
00334 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00335 virtual void startOfElement();
00336 virtual void endOfElement();
00337 virtual void endOfAttributes() {}
00338 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00339 virtual void text(const char *value);
00340
00341 private:
00342 FB2Authors &m_authors;
00343 };
00344
00345 class FB2NicknameContext : public FB2ParserContext
00346 {
00347 public:
00348 FB2NicknameContext(FB2ParserContext *parentContext, FB2Authors &authors);
00349
00350 private:
00351 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00352 virtual void startOfElement();
00353 virtual void endOfElement();
00354 virtual void endOfAttributes() {}
00355 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00356 virtual void text(const char *value);
00357
00358 private:
00359 FB2Authors &m_authors;
00360 };
00361
00362 class FB2OutputContext : public FB2ParserContext
00363 {
00364 public:
00365 explicit FB2OutputContext(FB2ParserContext *parentContext);
00366
00367 private:
00368 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00369 virtual void startOfElement();
00370 virtual void endOfElement();
00371 virtual void endOfAttributes() {}
00372 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00373 virtual void text(const char *value);
00374 };
00375
00376 class FB2OutputDocumentClassContext : public FB2ParserContext
00377 {
00378 public:
00379 explicit FB2OutputDocumentClassContext(FB2ParserContext *parentContext);
00380
00381 private:
00382 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00383 virtual void startOfElement();
00384 virtual void endOfElement();
00385 virtual void endOfAttributes() {}
00386 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00387 virtual void text(const char *value);
00388 };
00389
00390 class FB2PartContext : public FB2ParserContext
00391 {
00392 public:
00393 explicit FB2PartContext(FB2ParserContext *parentContext);
00394
00395 private:
00396 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00397 virtual void startOfElement();
00398 virtual void endOfElement();
00399 virtual void endOfAttributes() {}
00400 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00401 virtual void text(const char *value);
00402 };
00403
00404 class FB2ProgramUsedContext : public FB2ParserContext
00405 {
00406 public:
00407 explicit FB2ProgramUsedContext(FB2ParserContext *parentContext);
00408
00409 private:
00410 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00411 virtual void startOfElement();
00412 virtual void endOfElement();
00413 virtual void endOfAttributes() {}
00414 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00415 virtual void text(const char *value);
00416 };
00417
00418 class FB2PublisherContext : public FB2ParserContext
00419 {
00420 public:
00421 explicit FB2PublisherContext(FB2ParserContext *parentContext);
00422
00423 private:
00424 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00425 virtual void startOfElement();
00426 virtual void endOfElement();
00427 virtual void endOfAttributes() {}
00428 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00429 virtual void text(const char *value);
00430 };
00431
00432 class FB2PublishInfoContext : public FB2ParserContext
00433 {
00434 public:
00435 explicit FB2PublishInfoContext(FB2ParserContext *parentContext);
00436
00437 private:
00438 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00439 virtual void startOfElement();
00440 virtual void endOfElement();
00441 virtual void endOfAttributes() {}
00442 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00443 virtual void text(const char *value);
00444 };
00445
00446 class FB2SequenceContext : public FB2ParserContext
00447 {
00448 public:
00449 explicit FB2SequenceContext(FB2ParserContext *parentContext);
00450
00451 private:
00452 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00453 virtual void startOfElement();
00454 virtual void endOfElement();
00455 virtual void endOfAttributes() {}
00456 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00457 virtual void text(const char *value);
00458 };
00459
00460 class FB2SrcLangContext : public FB2ParserContext
00461 {
00462 public:
00463 explicit FB2SrcLangContext(FB2ParserContext *parentContext);
00464
00465 private:
00466 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00467 virtual void startOfElement();
00468 virtual void endOfElement();
00469 virtual void endOfAttributes() {}
00470 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00471 virtual void text(const char *value);
00472 };
00473
00474 class FB2SrcOcrContext : public FB2ParserContext
00475 {
00476 public:
00477 explicit FB2SrcOcrContext(FB2ParserContext *parentContext);
00478
00479 private:
00480 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00481 virtual void startOfElement();
00482 virtual void endOfElement();
00483 virtual void endOfAttributes() {}
00484 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00485 virtual void text(const char *value);
00486 };
00487
00488 class FB2SrcTitleInfoContext : public FB2ParserContext
00489 {
00490 public:
00491 explicit FB2SrcTitleInfoContext(FB2ParserContext *parentContext);
00492
00493 private:
00494 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00495 virtual void startOfElement();
00496 virtual void endOfElement();
00497 virtual void endOfAttributes() {}
00498 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00499 virtual void text(const char *value);
00500 };
00501
00502 class FB2SrcUrlContext : public FB2ParserContext
00503 {
00504 public:
00505 explicit FB2SrcUrlContext(FB2ParserContext *parentContext);
00506
00507 private:
00508 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00509 virtual void startOfElement();
00510 virtual void endOfElement();
00511 virtual void endOfAttributes() {}
00512 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00513 virtual void text(const char *value);
00514 };
00515
00516 class FB2TitleInfoContext : public FB2ParserContext
00517 {
00518
00519 FB2TitleInfoContext(const FB2TitleInfoContext &other);
00520 FB2TitleInfoContext &operator=(const FB2TitleInfoContext &other);
00521
00522 public:
00523 explicit FB2TitleInfoContext(FB2ParserContext *parentContext);
00524
00525 private:
00526 virtual ~FB2TitleInfoContext();
00527
00528 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00529 virtual void startOfElement();
00530 virtual void endOfElement();
00531 virtual void endOfAttributes() {}
00532 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00533 virtual void text(const char *value);
00534
00535 private:
00536 FB2Authors *m_authors;
00537 };
00538
00539 class FB2TranslatorContext : public FB2ParserContext
00540 {
00541 public:
00542 explicit FB2TranslatorContext(FB2ParserContext *parentContext);
00543
00544 private:
00545 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00546 virtual void startOfElement();
00547 virtual void endOfElement();
00548 virtual void endOfAttributes() {}
00549 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00550 virtual void text(const char *value);
00551 };
00552
00553 class FB2VersionContext : public FB2ParserContext
00554 {
00555 public:
00556 explicit FB2VersionContext(FB2ParserContext *parentContext);
00557
00558 private:
00559 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00560 virtual void startOfElement();
00561 virtual void endOfElement();
00562 virtual void endOfAttributes() {}
00563 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00564 virtual void text(const char *value);
00565 };
00566
00567 class FB2YearContext : public FB2ParserContext
00568 {
00569 public:
00570 explicit FB2YearContext(FB2ParserContext *parentContext);
00571
00572 private:
00573 virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
00574 virtual void startOfElement();
00575 virtual void endOfElement();
00576 virtual void endOfAttributes() {}
00577 virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
00578 virtual void text(const char *value);
00579 };
00580
00581 }
00582
00583 #endif // FB2METADATACONTEXT_H_INCLUDED
00584
00585