Blame src/Artist.cc.silence-warnings

Packit 853e2d
/* --------------------------------------------------------------------------
Packit 853e2d
Packit 853e2d
   libmusicbrainz5 - Client library to access MusicBrainz
Packit 853e2d
Packit 853e2d
   Copyright (C) 2012 Andrew Hawkins
Packit 853e2d
Packit 853e2d
   This file is part of libmusicbrainz5.
Packit 853e2d
Packit 853e2d
   This library is free software; you can redistribute it and/or
Packit 853e2d
   modify it under the terms of the GNU Lesser General Public
Packit 853e2d
   License as published by the Free Software Foundation; either
Packit 853e2d
   version 2.1 of the License, or (at your option) any later version.
Packit 853e2d
Packit 853e2d
   libmusicbrainz5 is distributed in the hope that it will be useful,
Packit 853e2d
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 853e2d
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 853e2d
   Lesser General Public License for more details.
Packit 853e2d
Packit 853e2d
   You should have received a copy of the GNU General Public License
Packit 853e2d
   along with this library.  If not, see <http://www.gnu.org/licenses/>.
Packit 853e2d
Packit 853e2d
     $Id$
Packit 853e2d
Packit 853e2d
----------------------------------------------------------------------------*/
Packit 853e2d
Packit 853e2d
#include "config.h"
Packit 853e2d
#include "musicbrainz5/defines.h"
Packit 853e2d
Packit 853e2d
#include "musicbrainz5/Artist.h"
Packit 853e2d
Packit 853e2d
#include "musicbrainz5/Lifespan.h"
Packit 853e2d
#include "musicbrainz5/IPI.h"
Packit 853e2d
#include "musicbrainz5/Rating.h"
Packit 853e2d
#include "musicbrainz5/UserRating.h"
Packit 853e2d
#include "musicbrainz5/AliasList.h"
Packit 853e2d
#include "musicbrainz5/Alias.h"
Packit 853e2d
#include "musicbrainz5/RecordingList.h"
Packit 853e2d
#include "musicbrainz5/Recording.h"
Packit 853e2d
#include "musicbrainz5/ReleaseList.h"
Packit 853e2d
#include "musicbrainz5/Release.h"
Packit 853e2d
#include "musicbrainz5/ReleaseGroupList.h"
Packit 853e2d
#include "musicbrainz5/ReleaseGroup.h"
Packit 853e2d
#include "musicbrainz5/LabelList.h"
Packit 853e2d
#include "musicbrainz5/Label.h"
Packit 853e2d
#include "musicbrainz5/WorkList.h"
Packit 853e2d
#include "musicbrainz5/Work.h"
Packit 853e2d
#include "musicbrainz5/RelationList.h"
Packit 853e2d
#include "musicbrainz5/RelationListList.h"
Packit 853e2d
#include "musicbrainz5/Relation.h"
Packit 853e2d
#include "musicbrainz5/TagList.h"
Packit 853e2d
#include "musicbrainz5/Tag.h"
Packit 853e2d
#include "musicbrainz5/UserTagList.h"
Packit 853e2d
#include "musicbrainz5/UserTag.h"
Packit 853e2d
Packit 853e2d
class MusicBrainz5::CArtistPrivate
Packit 853e2d
{
Packit 853e2d
	public:
Packit 853e2d
		CArtistPrivate()
Packit 853e2d
		:	m_IPIList(0),
Packit 853e2d
			m_Lifespan(0),
Packit 853e2d
			m_AliasList(0),
Packit 853e2d
			m_RecordingList(0),
Packit 853e2d
			m_ReleaseList(0),
Packit 853e2d
			m_ReleaseGroupList(0),
Packit 853e2d
			m_LabelList(0),
Packit 853e2d
			m_WorkList(0),
Packit 853e2d
			m_RelationListList(0),
Packit 853e2d
			m_TagList(0),
Packit 853e2d
			m_UserTagList(0),
Packit 853e2d
			m_Rating(0),
Packit 853e2d
			m_UserRating(0)
Packit 853e2d
		{
Packit 853e2d
		}
Packit 853e2d
Packit 853e2d
		std::string m_ID;
Packit 853e2d
		std::string m_Type;
Packit 853e2d
		std::string m_Name;
Packit 853e2d
		std::string m_SortName;
Packit 853e2d
		std::string m_Gender;
Packit 853e2d
		std::string m_Country;
Packit 853e2d
		std::string m_Disambiguation;
Packit 853e2d
		CIPIList *m_IPIList;
Packit 853e2d
		CLifespan *m_Lifespan;
Packit 853e2d
		CAliasList *m_AliasList;
Packit 853e2d
		CRecordingList *m_RecordingList;
Packit 853e2d
		CReleaseList *m_ReleaseList;
Packit 853e2d
		CReleaseGroupList *m_ReleaseGroupList;
Packit 853e2d
		CLabelList *m_LabelList;
Packit 853e2d
		CWorkList *m_WorkList;
Packit 853e2d
		CRelationListList *m_RelationListList;
Packit 853e2d
		CTagList *m_TagList;
Packit 853e2d
		CUserTagList *m_UserTagList;
Packit 853e2d
		CRating *m_Rating;
Packit 853e2d
		CUserRating *m_UserRating;
Packit 853e2d
};
Packit 853e2d
Packit 853e2d
MusicBrainz5::CArtist::CArtist(const XMLNode& Node)
Packit 853e2d
:	CEntity(),
Packit 853e2d
	m_d(new CArtistPrivate)
Packit 853e2d
{
Packit 853e2d
	if (!Node.isEmpty())
Packit 853e2d
	{
Packit 853e2d
		//std::cout << "Artist node: " << std::endl << Node.createXMLString(true) << std::endl;
Packit 853e2d
Packit 853e2d
		Parse(Node);
Packit 853e2d
	}
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CArtist::CArtist(const CArtist& Other)
Packit 853e2d
:	CEntity(),
Packit 853e2d
	m_d(new CArtistPrivate)
Packit 853e2d
{
Packit 853e2d
	*this=Other;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CArtist& MusicBrainz5::CArtist::operator =(const CArtist& Other)
Packit 853e2d
{
Packit 853e2d
	if (this!=&Other)
Packit 853e2d
	{
Packit 853e2d
		Cleanup();
Packit 853e2d
Packit 853e2d
		CEntity::operator =(Other);
Packit 853e2d
Packit 853e2d
		m_d->m_ID=Other.m_d->m_ID;
Packit 853e2d
		m_d->m_Type=Other.m_d->m_Type;
Packit 853e2d
		m_d->m_Name=Other.m_d->m_Name;
Packit 853e2d
		m_d->m_SortName=Other.m_d->m_SortName;
Packit 853e2d
		m_d->m_Gender=Other.m_d->m_Gender;
Packit 853e2d
		m_d->m_Country=Other.m_d->m_Country;
Packit 853e2d
		m_d->m_Disambiguation=Other.m_d->m_Disambiguation;
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_IPIList)
Packit 853e2d
			m_d->m_IPIList=new CIPIList(*Other.m_d->m_IPIList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_Lifespan)
Packit 853e2d
			m_d->m_Lifespan=new CLifespan(*Other.m_d->m_Lifespan);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_AliasList)
Packit 853e2d
			m_d->m_AliasList=new CAliasList(*Other.m_d->m_AliasList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_RecordingList)
Packit 853e2d
			m_d->m_RecordingList=new CRecordingList(*Other.m_d->m_RecordingList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_ReleaseList)
Packit 853e2d
			m_d->m_ReleaseList=new CReleaseList(*Other.m_d->m_ReleaseList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_ReleaseGroupList)
Packit 853e2d
			m_d->m_ReleaseGroupList=new CReleaseGroupList(*Other.m_d->m_ReleaseGroupList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_LabelList)
Packit 853e2d
			m_d->m_LabelList=new CLabelList(*Other.m_d->m_LabelList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_WorkList)
Packit 853e2d
			m_d->m_WorkList=new CWorkList(*Other.m_d->m_WorkList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_RelationListList)
Packit 853e2d
			m_d->m_RelationListList=new CRelationListList(*Other.m_d->m_RelationListList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_TagList)
Packit 853e2d
			m_d->m_TagList=new CTagList(*Other.m_d->m_TagList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_UserTagList)
Packit 853e2d
			m_d->m_UserTagList=new CUserTagList(*Other.m_d->m_UserTagList);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_Rating)
Packit 853e2d
			m_d->m_Rating=new CRating(*Other.m_d->m_Rating);
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_UserRating)
Packit 853e2d
			m_d->m_UserRating=new CUserRating(*Other.m_d->m_UserRating);
Packit 853e2d
	}
Packit 853e2d
Packit 853e2d
	return *this;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CArtist::~CArtist()
Packit 853e2d
{
Packit 853e2d
	Cleanup();
Packit 853e2d
Packit 853e2d
	delete m_d;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
void MusicBrainz5::CArtist::Cleanup()
Packit 853e2d
{
Packit 853e2d
	delete m_d->m_IPIList;
Packit 853e2d
	m_d->m_IPIList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_Lifespan;
Packit 853e2d
	m_d->m_Lifespan=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_AliasList;
Packit 853e2d
	m_d->m_AliasList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_RecordingList;
Packit 853e2d
	m_d->m_RecordingList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_ReleaseList;
Packit 853e2d
	m_d->m_ReleaseList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_ReleaseGroupList;
Packit 853e2d
	m_d->m_ReleaseGroupList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_LabelList;
Packit 853e2d
	m_d->m_LabelList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_WorkList;
Packit 853e2d
	m_d->m_WorkList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_RelationListList;
Packit 853e2d
	m_d->m_RelationListList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_TagList;
Packit 853e2d
	m_d->m_TagList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_UserTagList;
Packit 853e2d
	m_d->m_UserTagList=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_Rating;
Packit 853e2d
	m_d->m_Rating=0;
Packit 853e2d
Packit 853e2d
	delete m_d->m_UserRating;
Packit 853e2d
	m_d->m_UserRating=0;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CArtist *MusicBrainz5::CArtist::Clone()
Packit 853e2d
{
Packit 853e2d
	return new CArtist(*this);
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
void MusicBrainz5::CArtist::ParseAttribute(const std::string& Name, const std::string& Value)
Packit 853e2d
{
Packit 853e2d
	if ("id"==Name)
Packit 853e2d
		m_d->m_ID=Value;
Packit 853e2d
	else if ("type"==Name)
Packit 853e2d
		m_d->m_Type=Value;
Packit 853e2d
	else
Packit 853e2d
	{
Packit 853e2d
		std::cerr << "Unrecognised artist attribute: '" << Name << "'" << std::endl;
Packit 853e2d
	}
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
void MusicBrainz5::CArtist::ParseElement(const XMLNode& Node)
Packit 853e2d
{
Packit 853e2d
	std::string NodeName=Node.getName();
Packit 853e2d
Packit 853e2d
	if ("name"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Name);
Packit 853e2d
	}
Packit 853e2d
	else if ("sort-name"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_SortName);
Packit 853e2d
	}
Packit 853e2d
	else if ("gender"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Gender);
Packit 853e2d
	}
Packit 853e2d
	else if ("country"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Country);
Packit 853e2d
	}
Packit 853e2d
	else if ("disambiguation"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Disambiguation);
Packit 853e2d
	}
Packit 853e2d
	else if ("ipi"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		//Ignore IPI
Packit 853e2d
	}
Packit 853e2d
	else if ("ipi-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_IPIList);
Packit 853e2d
	}
Packit 853e2d
	else if ("life-span"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Lifespan);
Packit 853e2d
	}
Packit 853e2d
	else if ("alias-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_AliasList);
Packit 853e2d
	}
Packit 853e2d
	else if ("recording-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_RecordingList);
Packit 853e2d
	}
Packit 853e2d
	else if ("release-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_ReleaseList);
Packit 853e2d
	}
Packit 853e2d
	else if ("release-group-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_ReleaseGroupList);
Packit 853e2d
	}
Packit 853e2d
	else if ("label-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_LabelList);
Packit 853e2d
	}
Packit 853e2d
	else if ("work-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_WorkList);
Packit 853e2d
	}
Packit 853e2d
	else if ("relation-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessRelationList(Node,m_d->m_RelationListList);
Packit 853e2d
	}
Packit 853e2d
	else if ("tag-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_TagList);
Packit 853e2d
	}
Packit 853e2d
	else if ("user-tag-list"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_UserTagList);
Packit 853e2d
	}
Packit 853e2d
	else if ("rating"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Rating);
Packit 853e2d
	}
Packit 853e2d
	else if ("user-rating"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_UserRating);
Packit 853e2d
	}
Packit 853e2d
	else
Packit 853e2d
	{
Packit 853e2d
		std::cerr << "Unrecognised artist element: '" << NodeName << "'" << std::endl;
Packit 853e2d
	}
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::GetElementName()
Packit 853e2d
{
Packit 853e2d
	return "artist";
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::ID() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_ID;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::Type() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Type;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::Name() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Name;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::SortName() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_SortName;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::Gender() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Gender;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::Country() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Country;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CArtist::Disambiguation() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Disambiguation;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CIPIList *MusicBrainz5::CArtist::IPIList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_IPIList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLifespan *MusicBrainz5::CArtist::Lifespan() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Lifespan;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CAliasList *MusicBrainz5::CArtist::AliasList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_AliasList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CRecordingList *MusicBrainz5::CArtist::RecordingList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_RecordingList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CReleaseList *MusicBrainz5::CArtist::ReleaseList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_ReleaseList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CReleaseGroupList *MusicBrainz5::CArtist::ReleaseGroupList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_ReleaseGroupList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabelList *MusicBrainz5::CArtist::LabelList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_LabelList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CWorkList *MusicBrainz5::CArtist::WorkList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_WorkList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CRelationListList *MusicBrainz5::CArtist::RelationListList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_RelationListList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CTagList *MusicBrainz5::CArtist::TagList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_TagList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CUserTagList *MusicBrainz5::CArtist::UserTagList() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_UserTagList;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CRating *MusicBrainz5::CArtist::Rating() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Rating;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CUserRating *MusicBrainz5::CArtist::UserRating() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_UserRating;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::ostream& MusicBrainz5::CArtist::Serialise(std::ostream& os) const
Packit 853e2d
{
Packit 853e2d
	os << "Artist:" << std::endl;
Packit 853e2d
Packit 853e2d
	CEntity::Serialise(os);
Packit 853e2d
Packit 853e2d
	os << "\tID:             " << ID() << std::endl;
Packit 853e2d
	os << "\tType:           " << Type() << std::endl;
Packit 853e2d
	os << "\tName:           " << Name() << std::endl;
Packit 853e2d
	os << "\tSort name:      " << SortName() << std::endl;
Packit 853e2d
	os << "\tGender:         " << Gender() << std::endl;
Packit 853e2d
	os << "\tCountry:        " << Country() << std::endl;
Packit 853e2d
	os << "\tDisambiguation: " << Disambiguation() << std::endl;
Packit 853e2d
Packit 853e2d
	if (IPIList())
Packit 853e2d
		os << *IPIList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (Lifespan())
Packit 853e2d
		os << *Lifespan() << std::endl;
Packit 853e2d
Packit 853e2d
	if (AliasList())
Packit 853e2d
		os << *AliasList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (RecordingList())
Packit 853e2d
		os << *RecordingList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (ReleaseList())
Packit 853e2d
		os << *ReleaseList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (ReleaseGroupList())
Packit 853e2d
		os << *ReleaseGroupList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (LabelList())
Packit 853e2d
		os << *LabelList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (WorkList())
Packit 853e2d
		os << *WorkList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (RelationListList())
Packit 853e2d
		os << *RelationListList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (TagList())
Packit 853e2d
		os << *TagList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (UserTagList())
Packit 853e2d
		os << *UserTagList() << std::endl;
Packit 853e2d
Packit 853e2d
	if (Rating())
Packit 853e2d
		os << *Rating() << std::endl;
Packit 853e2d
Packit 853e2d
	if (UserRating())
Packit 853e2d
		os << *UserRating() << std::endl;
Packit 853e2d
Packit 853e2d
	return os;
Packit 853e2d
}
Packit 853e2d