7 #include "DocumentSerialize.h" 8 #include "EngaugeAssert.h" 10 #include "PointIdentifiers.h" 12 #include <QXmlStreamReader> 13 #include <QXmlStreamWriter> 22 LOG4CPP_DEBUG_S ((*mainCat)) <<
"PointIdentifiers::contains" 23 <<
" pointCount=" << m_pointIdentifiers.count();
25 return m_pointIdentifiers.contains (pointIdentifier);
30 return m_pointIdentifiers.count();
35 ENGAUGE_ASSERT (i < m_pointIdentifiers.count());
37 QList<QString> keys = m_pointIdentifiers.keys();
44 ENGAUGE_ASSERT (m_pointIdentifiers.contains (pointIdentifier));
46 return m_pointIdentifiers [pointIdentifier];
54 while (loadNextFromReader (reader)) {
56 if (reader.atEnd() || reader.hasError ()) {
61 if ((reader.tokenType() == QXmlStreamReader::EndElement) &&
62 (reader.name() == DOCUMENT_SERIALIZE_POINT_IDENTIFIERS)) {
67 if ((reader.tokenType() == QXmlStreamReader::StartElement) &&
68 (reader.name() == DOCUMENT_SERIALIZE_POINT_IDENTIFIER)) {
71 QXmlStreamAttributes attributes = reader.attributes();
73 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_NAME) &&
74 attributes.hasAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_VALUE)) {
76 QString valueStr = attributes.value (DOCUMENT_SERIALIZE_POINT_IDENTIFIER_VALUE).toString();
78 QString identifier = attributes.value (DOCUMENT_SERIALIZE_POINT_IDENTIFIER_NAME).toString();
79 bool value = (valueStr == DOCUMENT_SERIALIZE_BOOL_TRUE);
81 m_pointIdentifiers [identifier] = value;
87 reader.raiseError (QObject::tr (
"Cannot read point identifiers"));
93 writer.writeStartElement(DOCUMENT_SERIALIZE_POINT_IDENTIFIERS);
94 PointIdentifiersInternal::const_iterator itr;
95 for (itr = m_pointIdentifiers.begin(); itr != m_pointIdentifiers.end (); itr++) {
96 QString identifier = itr.key();
97 bool value = itr.value();
98 writer.writeStartElement (DOCUMENT_SERIALIZE_POINT_IDENTIFIER);
99 writer.writeAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_NAME, identifier);
100 writer.writeAttribute(DOCUMENT_SERIALIZE_POINT_IDENTIFIER_VALUE,
101 value ? DOCUMENT_SERIALIZE_BOOL_TRUE : DOCUMENT_SERIALIZE_BOOL_FALSE);
102 writer.writeEndElement();
104 writer.writeEndElement();
110 m_pointIdentifiers [pointIdentifier] = value;
QString getKey(int i) const
Get key for index.
bool getValue(const QString &pointIdentifier) const
Get value for key.
void setKeyValue(const QString &pointIdentifier, bool value)
Set key/value pair.
void saveXml(QXmlStreamWriter &writer) const
Serialize table to xml.
PointIdentifiers()
Single constructor.
void loadXml(QXmlStreamReader &reader)
Load from serialized xml.
bool contains(const QString &pointIdentifier) const
True if specified entry exists in the table.
int count() const
Number of entries.