FB2MetadataContext.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /*
00003  * This file is part of the libe-book project.
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this
00007  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
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   // no copying
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   // no copying
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   // no copying
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 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */