File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
XmlStackedHandler.cpp
1 
6 /* SPDX-License-Identifier: CC0-1.0 */
7 #include "IsisDebug.h"
8 #include "XmlStackedHandler.h"
9 
10 #include <QDebug>
11 #include <QStack>
12 #include <QXmlParseException>
13 
14 #include "XmlStackedHandlerReader.h"
15 
16 namespace Isis {
17  XmlStackedHandler::XmlStackedHandler() {
18  m_reader = NULL;
19  m_depth = 0;
20  }
21 
22 
23  XmlStackedHandler::~XmlStackedHandler() {
24  m_reader = NULL;
25  m_depth = 0;
26  }
27 
28 
29  void XmlStackedHandler::setReader(XmlStackedHandlerReader *reader) {
30  m_reader = reader;
31  }
32 
33 
39  nextHandler->startElement(m_lastStartNamespaceURI, m_lastStartLocalName,
40  m_lastStartQName, m_lastStartAtts);
41  }
42 
43 
44  bool XmlStackedHandler::startElement(const QString &namespaceURI, const QString &localName,
45  const QString &qName, const QXmlAttributes &atts) {
46  m_lastStartNamespaceURI = namespaceURI;
47  m_lastStartLocalName = localName;
48  m_lastStartQName = qName;
49  m_lastStartAtts = atts;
50  m_depth++;
51 
52  return true;
53  }
54 
55  bool XmlStackedHandler::endElement(const QString &namespaceURI, const QString &localName,
56  const QString &qName) {
57  m_depth--;
58 
59  ASSERT(m_depth >= 0);
60  if (m_depth == 0 && reader()) {
61  reader()->popContentHandler();
62 
63  if (reader()->topContentHandler())
64  reader()->topContentHandler()->endElement(namespaceURI, localName, qName);
65  }
66 
67  return true;
68  }
69 
70  XmlStackedHandlerReader *XmlStackedHandler::reader() {
71  return m_reader;
72  }
73 
74 
75  const XmlStackedHandlerReader *XmlStackedHandler::reader() const {
76  return m_reader;
77  }
78 
79 
80  bool XmlStackedHandler::fatalError(const QXmlParseException &exception) {
81  qDebug() << "Parse error at line " << exception.lineNumber()
82  << ", " << "column " << exception.columnNumber() << ": "
83  << qPrintable(exception.message());
84  return false;
85  }
86 
87 }
Isis::XmlStackedHandler
XML Handler that parses XMLs in a stack-oriented way.
Definition: XmlStackedHandler.h:118
Isis::XmlStackedHandler::switchToNewHandler
void switchToNewHandler(XmlStackedHandler *nextHandler)
Switch to a new content handler and continue processing using the new handler.
Definition: XmlStackedHandler.cpp:38
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:17:28