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