summaryrefslogtreecommitdiffstats
path: root/src/translators/xmlstatehandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/translators/xmlstatehandler.h')
-rw-r--r--src/translators/xmlstatehandler.h345
1 files changed, 345 insertions, 0 deletions
diff --git a/src/translators/xmlstatehandler.h b/src/translators/xmlstatehandler.h
new file mode 100644
index 0000000..8b5c137
--- /dev/null
+++ b/src/translators/xmlstatehandler.h
@@ -0,0 +1,345 @@
+/***************************************************************************
+ copyright : (C) 2008 by Robby Stephenson
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of version 2 of the GNU General Public License as *
+ * published by the Free Software Foundation; *
+ * *
+ ***************************************************************************/
+
+#ifndef TELLICO_IMPORT_XMLSTATEHANDLER_H
+#define TELLICO_IMPORT_XMLSTATEHANDLER_H
+
+#ifdef QT_NO_CAST_ASCII
+#define HAD_QT_NO_CAST_ASCII
+#undef QT_NO_CAST_ASCII
+#endif
+
+#include <tqxml.h>
+
+#ifdef HAD_QT_NO_CAST_ASCII
+#define QT_NO_CAST_ASCII
+#undef HAD_QT_NO_CAST_ASCII
+#endif
+
+#include "../datavectors.h"
+
+namespace Tellico {
+ namespace Import {
+ namespace SAX {
+
+class StateData {
+public:
+ TQString text;
+ TQString error;
+ TQString ns; // namespace
+ TQString textBuffer;
+ uint syntaxVersion;
+ TQString collTitle;
+ int collType;
+ TQString entryName;
+ Data::CollPtr coll;
+ Data::FieldVec fields;
+ Data::FieldPtr currentField;
+ Data::EntryVec entries;
+ FilterPtr filter;
+ Data::BorrowerPtr borrower;
+ bool defaultFields;
+ bool loadImages;
+ bool hasImages;
+};
+
+class StateHandler {
+public:
+ StateHandler(StateData* data) : d(data) {}
+ virtual ~StateHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) = 0;
+ virtual bool end(const TQString&, const TQString&, const TQString&) = 0;
+
+ StateHandler* nextHandler(const TQString&, const TQString&, const TQString&);
+protected:
+ StateData* d;
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&) { return 0; }
+};
+
+class NullHandler : public StateHandler {
+public:
+ NullHandler(StateData* data) : StateHandler(data) {}
+ virtual ~NullHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) { return true; }
+ virtual bool end(const TQString&, const TQString&, const TQString&) { return true; }
+};
+
+class RootHandler : public StateHandler {
+public:
+ RootHandler(StateData* data) : StateHandler(data) {}
+ virtual ~RootHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&) { return true; }
+ virtual bool end(const TQString&, const TQString&, const TQString&) { return true; }
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class DocumentHandler : public StateHandler {
+public:
+ DocumentHandler(StateData* data) : StateHandler(data) {}
+ virtual ~DocumentHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class CollectionHandler : public StateHandler {
+public:
+ CollectionHandler(StateData* data) : StateHandler(data) {}
+ virtual ~CollectionHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FieldsHandler : public StateHandler {
+public:
+ FieldsHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FieldsHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FieldHandler : public StateHandler {
+public:
+ FieldHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FieldHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FieldPropertyHandler : public StateHandler {
+public:
+ FieldPropertyHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FieldPropertyHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ TQString m_propertyName;
+};
+
+class BibtexPreambleHandler : public StateHandler {
+public:
+ BibtexPreambleHandler(StateData* data) : StateHandler(data) {}
+ virtual ~BibtexPreambleHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+};
+
+class BibtexMacrosHandler : public StateHandler {
+public:
+ BibtexMacrosHandler(StateData* data) : StateHandler(data) {}
+ virtual ~BibtexMacrosHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class BibtexMacroHandler : public StateHandler {
+public:
+ BibtexMacroHandler(StateData* data) : StateHandler(data) {}
+ virtual ~BibtexMacroHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ TQString m_macroName;
+};
+
+class EntryHandler : public StateHandler {
+public:
+ EntryHandler(StateData* data) : StateHandler(data) {}
+ virtual ~EntryHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FieldValueContainerHandler : public StateHandler {
+public:
+ FieldValueContainerHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FieldValueContainerHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FieldValueHandler : public StateHandler {
+public:
+ FieldValueHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FieldValueHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+ bool m_i18n;
+ bool m_validateISBN;
+};
+
+class DateValueHandler : public StateHandler {
+public:
+ DateValueHandler(StateData* data) : StateHandler(data) {}
+ virtual ~DateValueHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+};
+
+class TableColumnHandler : public StateHandler {
+public:
+ TableColumnHandler(StateData* data) : StateHandler(data) {}
+ virtual ~TableColumnHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+};
+
+class ImagesHandler : public StateHandler {
+public:
+ ImagesHandler(StateData* data) : StateHandler(data) {}
+ virtual ~ImagesHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class ImageHandler : public StateHandler {
+public:
+ ImageHandler(StateData* data) : StateHandler(data) {}
+ virtual ~ImageHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ TQString m_format;
+ bool m_link;
+ TQString m_imageId;
+ int m_width;
+ int m_height;
+};
+
+class FiltersHandler : public StateHandler {
+public:
+ FiltersHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FiltersHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FilterHandler : public StateHandler {
+public:
+ FilterHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FilterHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class FilterRuleHandler : public StateHandler {
+public:
+ FilterRuleHandler(StateData* data) : StateHandler(data) {}
+ virtual ~FilterRuleHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+};
+
+class BorrowersHandler : public StateHandler {
+public:
+ BorrowersHandler(StateData* data) : StateHandler(data) {}
+ virtual ~BorrowersHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class BorrowerHandler : public StateHandler {
+public:
+ BorrowerHandler(StateData* data) : StateHandler(data) {}
+ virtual ~BorrowerHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ virtual StateHandler* nextHandlerImpl(const TQString&, const TQString&, const TQString&);
+};
+
+class LoanHandler : public StateHandler {
+public:
+ LoanHandler(StateData* data) : StateHandler(data) {}
+ virtual ~LoanHandler() {}
+
+ virtual bool start(const TQString&, const TQString&, const TQString&, const TQXmlAttributes&);
+ virtual bool end(const TQString&, const TQString&, const TQString&);
+
+private:
+ int m_id;
+ TQString m_uid;
+ TQString m_loanDate;
+ TQString m_dueDate;
+ bool m_inCalendar;
+};
+
+ }
+ }
+}
+#endif