LCOV - code coverage report
Current view: top level - core/metadata - qgsabstractmetadatabase.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 11 306 3.6 %
Date: 2021-04-10 08:29:14 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /***************************************************************************
       2                 :            :                              QgsAbstractMetadataBase.cpp
       3                 :            :                              --------------------
       4                 :            :     begin                : March 2018
       5                 :            :     copyright            : (C) 2018 by Nyall Dawson
       6                 :            :     email                : nyall dot dawson at gmail dot com
       7                 :            :  ***************************************************************************/
       8                 :            : 
       9                 :            : /***************************************************************************
      10                 :            :  *                                                                         *
      11                 :            :  *   This program is free software; you can redistribute it and/or modify  *
      12                 :            :  *   it under the terms of the GNU General Public License as published by  *
      13                 :            :  *   the Free Software Foundation; either version 2 of the License, or     *
      14                 :            :  *   (at your option) any later version.                                   *
      15                 :            :  *                                                                         *
      16                 :            :  ***************************************************************************/
      17                 :            : 
      18                 :            : #include "qgsabstractmetadatabase.h"
      19                 :            : #include "qgsmaplayer.h"
      20                 :            : 
      21                 :          1 : QString QgsAbstractMetadataBase::identifier() const
      22                 :            : {
      23                 :          1 :   return mIdentifier;
      24                 :            : }
      25                 :            : 
      26                 :          0 : void QgsAbstractMetadataBase::setIdentifier( const QString &identifier )
      27                 :            : {
      28                 :          0 :   mIdentifier = identifier;
      29                 :          0 : }
      30                 :            : 
      31                 :          0 : QString QgsAbstractMetadataBase::parentIdentifier() const
      32                 :            : {
      33                 :          0 :   return mParentIdentifier;
      34                 :            : }
      35                 :            : 
      36                 :          0 : void QgsAbstractMetadataBase::setParentIdentifier( const QString &parentIdentifier )
      37                 :            : {
      38                 :          0 :   mParentIdentifier = parentIdentifier;
      39                 :          0 : }
      40                 :            : 
      41                 :          0 : QString QgsAbstractMetadataBase::type() const
      42                 :            : {
      43                 :          0 :   return mType;
      44                 :            : }
      45                 :            : 
      46                 :         64 : void QgsAbstractMetadataBase::setType( const QString &type )
      47                 :            : {
      48                 :         64 :   mType = type;
      49                 :         64 : }
      50                 :            : 
      51                 :          1 : QString QgsAbstractMetadataBase::title() const
      52                 :            : {
      53                 :          1 :   return mTitle;
      54                 :            : }
      55                 :            : 
      56                 :          0 : void QgsAbstractMetadataBase::setTitle( const QString &title )
      57                 :            : {
      58                 :          0 :   mTitle = title;
      59                 :          0 : }
      60                 :            : 
      61                 :          1 : QString QgsAbstractMetadataBase::abstract() const
      62                 :            : {
      63                 :          1 :   return mAbstract;
      64                 :            : }
      65                 :            : 
      66                 :          0 : void QgsAbstractMetadataBase::setAbstract( const QString &abstract )
      67                 :            : {
      68                 :          0 :   mAbstract = abstract;
      69                 :          0 : }
      70                 :            : 
      71                 :          0 : QStringList QgsAbstractMetadataBase::history() const
      72                 :            : {
      73                 :          0 :   return mHistory;
      74                 :            : }
      75                 :            : 
      76                 :          0 : void QgsAbstractMetadataBase::setHistory( const QStringList &history )
      77                 :            : {
      78                 :          0 :   mHistory = history;
      79                 :          0 : }
      80                 :            : 
      81                 :          0 : void QgsAbstractMetadataBase::addHistoryItem( const QString &text )
      82                 :            : {
      83                 :          0 :   mHistory << text;
      84                 :          0 : }
      85                 :            : 
      86                 :          1 : QMap<QString, QStringList> QgsAbstractMetadataBase::keywords() const
      87                 :            : {
      88                 :          1 :   return mKeywords;
      89                 :            : }
      90                 :            : 
      91                 :          0 : void QgsAbstractMetadataBase::setKeywords( const QMap<QString, QStringList> &keywords )
      92                 :            : {
      93                 :          0 :   mKeywords = keywords;
      94                 :          0 : }
      95                 :            : 
      96                 :          0 : void QgsAbstractMetadataBase::addKeywords( const QString &vocabulary, const QStringList &keywords )
      97                 :            : {
      98                 :          0 :   mKeywords.insert( vocabulary, keywords );
      99                 :          0 : }
     100                 :            : 
     101                 :          0 : bool QgsAbstractMetadataBase::removeKeywords( const QString &vocabulary )
     102                 :            : {
     103                 :          0 :   return mKeywords.remove( vocabulary );
     104                 :            : }
     105                 :            : 
     106                 :          0 : QStringList QgsAbstractMetadataBase::keywordVocabularies() const
     107                 :            : {
     108                 :          0 :   return mKeywords.keys();
     109                 :            : }
     110                 :            : 
     111                 :          0 : QStringList QgsAbstractMetadataBase::keywords( const QString &vocabulary ) const
     112                 :            : {
     113                 :          0 :   return mKeywords.value( vocabulary );
     114                 :          0 : }
     115                 :            : 
     116                 :          0 : QStringList QgsAbstractMetadataBase::categories() const
     117                 :            : {
     118                 :          0 :   if ( mKeywords.contains( QStringLiteral( "gmd:topicCategory" ) ) )
     119                 :            :   {
     120                 :          0 :     return mKeywords.value( QStringLiteral( "gmd:topicCategory" ) );
     121                 :            :   }
     122                 :            :   else
     123                 :            :   {
     124                 :          0 :     return QStringList();
     125                 :            :   }
     126                 :          0 : }
     127                 :            : 
     128                 :          0 : void QgsAbstractMetadataBase::setCategories( const QStringList &category )
     129                 :            : {
     130                 :          0 :   mKeywords.insert( QStringLiteral( "gmd:topicCategory" ), category );
     131                 :          0 : }
     132                 :            : 
     133                 :          0 : QList<QgsAbstractMetadataBase::Contact> QgsAbstractMetadataBase::contacts() const
     134                 :            : {
     135                 :          0 :   return mContacts;
     136                 :            : }
     137                 :            : 
     138                 :          0 : void QgsAbstractMetadataBase::setContacts( const QList<QgsAbstractMetadataBase::Contact> &contacts )
     139                 :            : {
     140                 :          0 :   mContacts = contacts;
     141                 :          0 : }
     142                 :            : 
     143                 :          0 : void QgsAbstractMetadataBase::addContact( const QgsAbstractMetadataBase::Contact &contact )
     144                 :            : {
     145                 :          0 :   mContacts << contact;
     146                 :          0 : }
     147                 :            : 
     148                 :          0 : QList<QgsAbstractMetadataBase::Link> QgsAbstractMetadataBase::links() const
     149                 :            : {
     150                 :          0 :   return mLinks;
     151                 :            : }
     152                 :            : 
     153                 :          0 : void QgsAbstractMetadataBase::setLinks( const QList<QgsAbstractMetadataBase::Link> &links )
     154                 :            : {
     155                 :          0 :   mLinks = links;
     156                 :          0 : }
     157                 :            : 
     158                 :          0 : void QgsAbstractMetadataBase::addLink( const QgsAbstractMetadataBase::Link &link )
     159                 :            : {
     160                 :          0 :   mLinks << link;
     161                 :          0 : }
     162                 :            : 
     163                 :          0 : QString QgsAbstractMetadataBase::language() const
     164                 :            : {
     165                 :          0 :   return mLanguage;
     166                 :            : }
     167                 :            : 
     168                 :          0 : void QgsAbstractMetadataBase::setLanguage( const QString &language )
     169                 :            : {
     170                 :          0 :   mLanguage = language;
     171                 :          0 : }
     172                 :            : 
     173                 :          0 : bool QgsAbstractMetadataBase::readMetadataXml( const QDomElement &metadataElement )
     174                 :            : {
     175                 :          0 :   QDomNode mnl;
     176                 :          0 :   QDomElement mne;
     177                 :            : 
     178                 :            :   // set identifier
     179                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "identifier" ) );
     180                 :          0 :   mIdentifier = mnl.toElement().text();
     181                 :            : 
     182                 :            :   // set parent identifier
     183                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "parentidentifier" ) );
     184                 :          0 :   mParentIdentifier = mnl.toElement().text();
     185                 :            : 
     186                 :            :   // set language
     187                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "language" ) );
     188                 :          0 :   mLanguage = mnl.toElement().text();
     189                 :            : 
     190                 :            :   // set type
     191                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "type" ) );
     192                 :          0 :   mType = mnl.toElement().text();
     193                 :            : 
     194                 :            :   // set title
     195                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "title" ) );
     196                 :          0 :   mTitle = mnl.toElement().text();
     197                 :            : 
     198                 :            :   // set abstract
     199                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "abstract" ) );
     200                 :          0 :   mAbstract = mnl.toElement().text();
     201                 :            : 
     202                 :            :   // set keywords
     203                 :          0 :   QDomNodeList keywords = metadataElement.elementsByTagName( QStringLiteral( "keywords" ) );
     204                 :          0 :   mKeywords.clear();
     205                 :          0 :   for ( int i = 0; i < keywords.size(); i++ )
     206                 :            :   {
     207                 :          0 :     QStringList keywordsList;
     208                 :          0 :     mnl = keywords.at( i );
     209                 :          0 :     mne = mnl.toElement();
     210                 :            : 
     211                 :          0 :     QDomNodeList el = mne.elementsByTagName( QStringLiteral( "keyword" ) );
     212                 :          0 :     for ( int j = 0; j < el.size(); j++ )
     213                 :            :     {
     214                 :          0 :       keywordsList.append( el.at( j ).toElement().text() );
     215                 :          0 :     }
     216                 :          0 :     addKeywords( mne.attribute( QStringLiteral( "vocabulary" ) ), keywordsList );
     217                 :          0 :   }
     218                 :            : 
     219                 :            :   // contact
     220                 :          0 :   QDomNodeList contactsList = metadataElement.elementsByTagName( QStringLiteral( "contact" ) );
     221                 :          0 :   mContacts.clear();
     222                 :          0 :   for ( int i = 0; i < contactsList.size(); i++ )
     223                 :            :   {
     224                 :          0 :     mnl = contactsList.at( i );
     225                 :          0 :     mne = mnl.toElement();
     226                 :            : 
     227                 :          0 :     QgsAbstractMetadataBase::Contact oneContact;
     228                 :          0 :     oneContact.name = mne.namedItem( QStringLiteral( "name" ) ).toElement().text();
     229                 :          0 :     oneContact.organization = mne.namedItem( QStringLiteral( "organization" ) ).toElement().text();
     230                 :          0 :     oneContact.position = mne.namedItem( QStringLiteral( "position" ) ).toElement().text();
     231                 :          0 :     oneContact.voice = mne.namedItem( QStringLiteral( "voice" ) ).toElement().text();
     232                 :          0 :     oneContact.fax = mne.namedItem( QStringLiteral( "fax" ) ).toElement().text();
     233                 :          0 :     oneContact.email = mne.namedItem( QStringLiteral( "email" ) ).toElement().text();
     234                 :          0 :     oneContact.role = mne.namedItem( QStringLiteral( "role" ) ).toElement().text();
     235                 :            : 
     236                 :          0 :     QList< QgsAbstractMetadataBase::Address > addresses;
     237                 :          0 :     QDomNodeList addressList = mne.elementsByTagName( QStringLiteral( "contactAddress" ) );
     238                 :          0 :     for ( int j = 0; j < addressList.size(); j++ )
     239                 :            :     {
     240                 :          0 :       QDomElement addressElement = addressList.at( j ).toElement();
     241                 :          0 :       QgsAbstractMetadataBase::Address oneAddress;
     242                 :          0 :       oneAddress.address = addressElement.namedItem( QStringLiteral( "address" ) ).toElement().text();
     243                 :          0 :       oneAddress.administrativeArea = addressElement.namedItem( QStringLiteral( "administrativearea" ) ).toElement().text();
     244                 :          0 :       oneAddress.city = addressElement.namedItem( QStringLiteral( "city" ) ).toElement().text();
     245                 :          0 :       oneAddress.country = addressElement.namedItem( QStringLiteral( "country" ) ).toElement().text();
     246                 :          0 :       oneAddress.postalCode = addressElement.namedItem( QStringLiteral( "postalcode" ) ).toElement().text();
     247                 :          0 :       oneAddress.type = addressElement.namedItem( QStringLiteral( "type" ) ).toElement().text();
     248                 :          0 :       addresses << oneAddress;
     249                 :          0 :     }
     250                 :          0 :     oneContact.addresses = addresses;
     251                 :          0 :     addContact( oneContact );
     252                 :          0 :   }
     253                 :            : 
     254                 :            :   // links
     255                 :          0 :   mnl = metadataElement.namedItem( QStringLiteral( "links" ) );
     256                 :          0 :   mne = mnl.toElement();
     257                 :          0 :   mLinks.clear();
     258                 :          0 :   QDomNodeList el = mne.elementsByTagName( QStringLiteral( "link" ) );
     259                 :          0 :   for ( int i = 0; i < el.size(); i++ )
     260                 :            :   {
     261                 :          0 :     mne = el.at( i ).toElement();
     262                 :          0 :     QgsAbstractMetadataBase::Link oneLink;
     263                 :          0 :     oneLink.name = mne.attribute( QStringLiteral( "name" ) );
     264                 :          0 :     oneLink.type = mne.attribute( QStringLiteral( "type" ) );
     265                 :          0 :     oneLink.url = mne.attribute( QStringLiteral( "url" ) );
     266                 :          0 :     oneLink.description = mne.attribute( QStringLiteral( "description" ) );
     267                 :          0 :     oneLink.format = mne.attribute( QStringLiteral( "format" ) );
     268                 :          0 :     oneLink.mimeType = mne.attribute( QStringLiteral( "mimeType" ) );
     269                 :          0 :     oneLink.size = mne.attribute( QStringLiteral( "size" ) );
     270                 :          0 :     addLink( oneLink );
     271                 :          0 :   }
     272                 :            : 
     273                 :            :   // history
     274                 :          0 :   QDomNodeList historyNodeList = metadataElement.elementsByTagName( QStringLiteral( "history" ) );
     275                 :          0 :   QStringList historyList;
     276                 :          0 :   for ( int i = 0; i < historyNodeList.size(); i++ )
     277                 :            :   {
     278                 :          0 :     mnl = historyNodeList.at( i );
     279                 :          0 :     mne = mnl.toElement();
     280                 :          0 :     historyList.append( mne.text() );
     281                 :          0 :   }
     282                 :          0 :   setHistory( historyList );
     283                 :            : 
     284                 :            :   return true;
     285                 :          0 : }
     286                 :            : 
     287                 :          0 : bool QgsAbstractMetadataBase::writeMetadataXml( QDomElement &metadataElement, QDomDocument &document ) const
     288                 :            : {
     289                 :            :   // identifier
     290                 :          0 :   QDomElement identifier = document.createElement( QStringLiteral( "identifier" ) );
     291                 :          0 :   QDomText identifierText = document.createTextNode( mIdentifier );
     292                 :          0 :   identifier.appendChild( identifierText );
     293                 :          0 :   metadataElement.appendChild( identifier );
     294                 :            : 
     295                 :            :   // parent identifier
     296                 :          0 :   QDomElement parentIdentifier = document.createElement( QStringLiteral( "parentidentifier" ) );
     297                 :          0 :   QDomText parentIdentifierText = document.createTextNode( mParentIdentifier );
     298                 :          0 :   parentIdentifier.appendChild( parentIdentifierText );
     299                 :          0 :   metadataElement.appendChild( parentIdentifier );
     300                 :            : 
     301                 :            :   // language
     302                 :          0 :   QDomElement language = document.createElement( QStringLiteral( "language" ) );
     303                 :          0 :   QDomText languageText = document.createTextNode( mLanguage );
     304                 :          0 :   language.appendChild( languageText );
     305                 :          0 :   metadataElement.appendChild( language );
     306                 :            : 
     307                 :            :   // type
     308                 :          0 :   QDomElement type = document.createElement( QStringLiteral( "type" ) );
     309                 :          0 :   QDomText typeText = document.createTextNode( mType );
     310                 :          0 :   type.appendChild( typeText );
     311                 :          0 :   metadataElement.appendChild( type );
     312                 :            : 
     313                 :            :   // title
     314                 :          0 :   QDomElement title = document.createElement( QStringLiteral( "title" ) );
     315                 :          0 :   QDomText titleText = document.createTextNode( mTitle );
     316                 :          0 :   title.appendChild( titleText );
     317                 :          0 :   metadataElement.appendChild( title );
     318                 :            : 
     319                 :            :   // abstract
     320                 :          0 :   QDomElement abstract = document.createElement( QStringLiteral( "abstract" ) );
     321                 :          0 :   QDomText abstractText = document.createTextNode( mAbstract );
     322                 :          0 :   abstract.appendChild( abstractText );
     323                 :          0 :   metadataElement.appendChild( abstract );
     324                 :            : 
     325                 :            :   // keywords
     326                 :          0 :   QMapIterator<QString, QStringList> i( mKeywords );
     327                 :          0 :   while ( i.hasNext() )
     328                 :            :   {
     329                 :          0 :     i.next();
     330                 :          0 :     QDomElement keywordsElement = document.createElement( QStringLiteral( "keywords" ) );
     331                 :          0 :     keywordsElement.setAttribute( QStringLiteral( "vocabulary" ), i.key() );
     332                 :          0 :     const QStringList values = i.value();
     333                 :          0 :     for ( const QString &kw : values )
     334                 :            :     {
     335                 :          0 :       QDomElement keyword = document.createElement( QStringLiteral( "keyword" ) );
     336                 :          0 :       QDomText keywordText = document.createTextNode( kw );
     337                 :          0 :       keyword.appendChild( keywordText );
     338                 :          0 :       keywordsElement.appendChild( keyword );
     339                 :          0 :     }
     340                 :          0 :     metadataElement.appendChild( keywordsElement );
     341                 :          0 :   }
     342                 :            : 
     343                 :            :   // contact
     344                 :          0 :   for ( const QgsAbstractMetadataBase::Contact &contact : mContacts )
     345                 :            :   {
     346                 :          0 :     QDomElement contactElement = document.createElement( QStringLiteral( "contact" ) );
     347                 :          0 :     QDomElement nameElement = document.createElement( QStringLiteral( "name" ) );
     348                 :          0 :     QDomElement organizationElement = document.createElement( QStringLiteral( "organization" ) );
     349                 :          0 :     QDomElement positionElement = document.createElement( QStringLiteral( "position" ) );
     350                 :          0 :     QDomElement voiceElement = document.createElement( QStringLiteral( "voice" ) );
     351                 :          0 :     QDomElement faxElement = document.createElement( QStringLiteral( "fax" ) );
     352                 :          0 :     QDomElement emailElement = document.createElement( QStringLiteral( "email" ) );
     353                 :          0 :     QDomElement roleElement = document.createElement( QStringLiteral( "role" ) );
     354                 :            : 
     355                 :          0 :     QDomText nameText = document.createTextNode( contact.name );
     356                 :          0 :     QDomText orgaText = document.createTextNode( contact.organization );
     357                 :          0 :     QDomText positionText = document.createTextNode( contact.position );
     358                 :          0 :     QDomText voiceText = document.createTextNode( contact.voice );
     359                 :          0 :     QDomText faxText = document.createTextNode( contact.fax );
     360                 :          0 :     QDomText emailText = document.createTextNode( contact.email );
     361                 :          0 :     QDomText roleText = document.createTextNode( contact.role );
     362                 :            : 
     363                 :          0 :     for ( const QgsAbstractMetadataBase::Address &oneAddress : contact.addresses )
     364                 :            :     {
     365                 :          0 :       QDomElement addressElement = document.createElement( QStringLiteral( "contactAddress" ) );
     366                 :          0 :       QDomElement typeElement = document.createElement( QStringLiteral( "type" ) );
     367                 :          0 :       QDomElement addressDetailedElement = document.createElement( QStringLiteral( "address" ) );
     368                 :          0 :       QDomElement cityElement = document.createElement( QStringLiteral( "city" ) );
     369                 :          0 :       QDomElement administrativeAreaElement = document.createElement( QStringLiteral( "administrativearea" ) );
     370                 :          0 :       QDomElement postalCodeElement = document.createElement( QStringLiteral( "postalcode" ) );
     371                 :          0 :       QDomElement countryElement = document.createElement( QStringLiteral( "country" ) );
     372                 :            : 
     373                 :          0 :       typeElement.appendChild( document.createTextNode( oneAddress.type ) );
     374                 :          0 :       addressDetailedElement.appendChild( document.createTextNode( oneAddress.address ) );
     375                 :          0 :       cityElement.appendChild( document.createTextNode( oneAddress.city ) );
     376                 :          0 :       administrativeAreaElement.appendChild( document.createTextNode( oneAddress.administrativeArea ) );
     377                 :          0 :       postalCodeElement.appendChild( document.createTextNode( oneAddress.postalCode ) );
     378                 :          0 :       countryElement.appendChild( document.createTextNode( oneAddress.country ) );
     379                 :            : 
     380                 :          0 :       addressElement.appendChild( typeElement );
     381                 :          0 :       addressElement.appendChild( addressDetailedElement );
     382                 :          0 :       addressElement.appendChild( cityElement );
     383                 :          0 :       addressElement.appendChild( administrativeAreaElement );
     384                 :          0 :       addressElement.appendChild( postalCodeElement );
     385                 :          0 :       addressElement.appendChild( countryElement );
     386                 :          0 :       contactElement.appendChild( addressElement );
     387                 :          0 :     }
     388                 :            : 
     389                 :          0 :     nameElement.appendChild( nameText );
     390                 :          0 :     organizationElement.appendChild( orgaText );
     391                 :          0 :     positionElement.appendChild( positionText );
     392                 :          0 :     voiceElement.appendChild( voiceText );
     393                 :          0 :     faxElement.appendChild( faxText );
     394                 :          0 :     emailElement.appendChild( emailText );
     395                 :          0 :     roleElement.appendChild( roleText );
     396                 :            : 
     397                 :          0 :     contactElement.appendChild( nameElement );
     398                 :          0 :     contactElement.appendChild( organizationElement );
     399                 :          0 :     contactElement.appendChild( positionElement );
     400                 :          0 :     contactElement.appendChild( voiceElement );
     401                 :          0 :     contactElement.appendChild( faxElement );
     402                 :          0 :     contactElement.appendChild( emailElement );
     403                 :          0 :     contactElement.appendChild( roleElement );
     404                 :          0 :     metadataElement.appendChild( contactElement );
     405                 :          0 :   }
     406                 :            : 
     407                 :            :   // links
     408                 :          0 :   QDomElement links = document.createElement( QStringLiteral( "links" ) );
     409                 :          0 :   for ( const QgsAbstractMetadataBase::Link &link : mLinks )
     410                 :            :   {
     411                 :          0 :     QDomElement linkElement = document.createElement( QStringLiteral( "link" ) );
     412                 :          0 :     linkElement.setAttribute( QStringLiteral( "name" ), link.name );
     413                 :          0 :     linkElement.setAttribute( QStringLiteral( "type" ), link.type );
     414                 :          0 :     linkElement.setAttribute( QStringLiteral( "url" ), link.url );
     415                 :          0 :     linkElement.setAttribute( QStringLiteral( "description" ), link.description );
     416                 :          0 :     linkElement.setAttribute( QStringLiteral( "format" ), link.format );
     417                 :          0 :     linkElement.setAttribute( QStringLiteral( "mimeType" ), link.mimeType );
     418                 :          0 :     linkElement.setAttribute( QStringLiteral( "size" ), link.size );
     419                 :          0 :     links.appendChild( linkElement );
     420                 :          0 :   }
     421                 :          0 :   metadataElement.appendChild( links );
     422                 :            : 
     423                 :            :   // history
     424                 :          0 :   for ( const QString &history : mHistory )
     425                 :            :   {
     426                 :          0 :     QDomElement historyElement = document.createElement( QStringLiteral( "history" ) );
     427                 :          0 :     QDomText historyText = document.createTextNode( history );
     428                 :          0 :     historyElement.appendChild( historyText );
     429                 :          0 :     metadataElement.appendChild( historyElement );
     430                 :          0 :   }
     431                 :            : 
     432                 :            :   return true;
     433                 :          0 : }
     434                 :            : 
     435                 :          0 : bool QgsAbstractMetadataBase::equals( const QgsAbstractMetadataBase &metadataOther )  const
     436                 :            : {
     437                 :          0 :   return ( ( mIdentifier == metadataOther.mIdentifier ) &&
     438                 :          0 :            ( mParentIdentifier == metadataOther.mParentIdentifier ) &&
     439                 :          0 :            ( mLanguage == metadataOther.mLanguage ) &&
     440                 :          0 :            ( mType == metadataOther.mType ) &&
     441                 :          0 :            ( mTitle == metadataOther.mTitle ) &&
     442                 :          0 :            ( mAbstract == metadataOther.mAbstract ) &&
     443                 :          0 :            ( mHistory == metadataOther.mHistory ) &&
     444                 :          0 :            ( mKeywords == metadataOther.mKeywords ) &&
     445                 :          0 :            ( mContacts == metadataOther.mContacts ) &&
     446                 :          0 :            ( mLinks == metadataOther.mLinks ) );
     447                 :            : }
     448                 :            : 
     449                 :            : 
     450                 :          0 : bool QgsAbstractMetadataBase::Contact::operator==( const QgsAbstractMetadataBase::Contact &other ) const
     451                 :            : {
     452                 :          0 :   return name == other.name &&
     453                 :          0 :          organization == other.organization &&
     454                 :          0 :          position == other.position &&
     455                 :          0 :          addresses == other.addresses &&
     456                 :          0 :          voice == other.voice &&
     457                 :          0 :          fax == other.fax &&
     458                 :          0 :          email == other.email &&
     459                 :          0 :          role == other.role;
     460                 :            : }
     461                 :            : 
     462                 :          0 : bool QgsAbstractMetadataBase::Link::operator==( const QgsAbstractMetadataBase::Link &other ) const
     463                 :            : {
     464                 :          0 :   return name == other.name &&
     465                 :          0 :          type == other.type &&
     466                 :          0 :          description == other.description &&
     467                 :          0 :          url == other.url &&
     468                 :          0 :          format == other.format &&
     469                 :          0 :          mimeType == other.mimeType &&
     470                 :          0 :          size == other.size;
     471                 :            : }
     472                 :            : 
     473                 :          0 : bool QgsAbstractMetadataBase::Address::operator==( const QgsAbstractMetadataBase::Address &other ) const
     474                 :            : {
     475                 :          0 :   return type == other.type &&
     476                 :          0 :          address == other.address &&
     477                 :          0 :          city == other.city &&
     478                 :          0 :          administrativeArea == other.administrativeArea &&
     479                 :          0 :          postalCode == other.postalCode &&
     480                 :          0 :          country == other.country;
     481                 :            : }

Generated by: LCOV version 1.14