6 #include "GeoDataSchemaData.h"
14 #include "GeoDataSimpleData.h"
15 #include "GeoDataTypes.h"
20 class GeoDataSchemaDataPrivate
23 GeoDataSchemaDataPrivate()
31 GeoDataExtendedData *m_parent;
34 GeoDataSchemaData::GeoDataSchemaData()
35 : d( new GeoDataSchemaDataPrivate )
39 GeoDataSchemaData::GeoDataSchemaData(
const GeoDataSchemaData &other )
40 : d( new GeoDataSchemaDataPrivate( *other.d ) )
44 GeoDataSchemaData &GeoDataSchemaData::operator=(
const GeoDataSchemaData &rhs )
50 bool GeoDataSchemaData::operator==(
const GeoDataSchemaData &other )
const
52 if ( d->m_schemaUrl != other.d->m_schemaUrl ||
53 d->m_simpleData.size() != other.d->m_simpleData.size() )
63 if ( *begin != *beginOther ) {
71 bool GeoDataSchemaData::operator!=(
const GeoDataSchemaData &other )
const
76 GeoDataSchemaData::~GeoDataSchemaData()
81 QString GeoDataSchemaData::schemaUrl()
const
83 return d->m_schemaUrl;
86 void GeoDataSchemaData::setSchemaUrl(
const QString &schemaUrl )
88 d->m_schemaUrl = schemaUrl;
91 GeoDataSimpleData &GeoDataSchemaData::simpleData(
const QString &name )
const
93 return d->m_simpleData[
name ];
96 void GeoDataSchemaData::addSimpleData(
const GeoDataSimpleData &data )
98 d->m_simpleData.
insert( data.name(), data );
103 return d->m_simpleData.values();
106 void GeoDataSchemaData::setParent(GeoDataExtendedData *parent)
108 d->m_parent = parent;
111 const GeoDataExtendedData *GeoDataSchemaData::parent()
const
116 GeoDataExtendedData *GeoDataSchemaData::parent()
121 const char* GeoDataSchemaData::nodeType()
const
123 return GeoDataTypes::GeoDataSchemaDataType;
126 void GeoDataSchemaData::pack(
QDataStream &stream )
const
128 stream << d->m_schemaUrl;
129 stream << d->m_simpleData.size();
134 for( ; iter !=
end; ++iter ) {
135 iter.
value().pack( stream );
139 void GeoDataSchemaData::unpack(
QDataStream &stream )
141 stream >> d->m_schemaUrl;
145 for(
int i = 0; i < size; i++ ) {
146 GeoDataSimpleData simpleData;
147 simpleData.unpack( stream );
148 d->m_simpleData.insert( simpleData.name(), simpleData );