Blame src/LabelInfo.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/LabelInfo.h"
Packit 853e2d
Packit 853e2d
#include "musicbrainz5/Label.h"
Packit 853e2d
Packit 853e2d
class MusicBrainz5::CLabelInfoPrivate
Packit 853e2d
{
Packit 853e2d
	public:
Packit 853e2d
		CLabelInfoPrivate()
Packit 853e2d
		:	m_Label(0)
Packit 853e2d
		{
Packit 853e2d
		}
Packit 853e2d
Packit 853e2d
		std::string m_CatalogNumber;
Packit 853e2d
		CLabel *m_Label;
Packit 853e2d
};
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabelInfo::CLabelInfo(const XMLNode& Node)
Packit 853e2d
:	CEntity(),
Packit 853e2d
	m_d(new CLabelInfoPrivate)
Packit 853e2d
{
Packit 853e2d
	if (!Node.isEmpty())
Packit 853e2d
	{
Packit 853e2d
		//std::cout << "Label info node: " << std::endl << Node.createXMLString(true) << std::endl;
Packit 853e2d
Packit 853e2d
		Parse(Node);
Packit 853e2d
	}
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabelInfo::CLabelInfo(const CLabelInfo& Other)
Packit 853e2d
:	CEntity(),
Packit 853e2d
	m_d(new CLabelInfoPrivate)
Packit 853e2d
{
Packit 853e2d
	*this=Other;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabelInfo& MusicBrainz5::CLabelInfo::operator =(const CLabelInfo& 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_CatalogNumber=Other.m_d->m_CatalogNumber;
Packit 853e2d
Packit 853e2d
		if (Other.m_d->m_Label)
Packit 853e2d
			m_d->m_Label=new CLabel(*Other.m_d->m_Label);
Packit 853e2d
	}
Packit 853e2d
Packit 853e2d
	return *this;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabelInfo::~CLabelInfo()
Packit 853e2d
{
Packit 853e2d
	Cleanup();
Packit 853e2d
Packit 853e2d
	delete m_d;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
void MusicBrainz5::CLabelInfo::Cleanup()
Packit 853e2d
{
Packit 853e2d
	delete m_d->m_Label;
Packit 853e2d
	m_d->m_Label=0;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabelInfo *MusicBrainz5::CLabelInfo::Clone()
Packit 853e2d
{
Packit 853e2d
	return new CLabelInfo(*this);
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
void MusicBrainz5::CLabelInfo::ParseAttribute(const std::string& Name, const std::string& /*Value*/)
Packit 853e2d
{
Packit 853e2d
	std::cerr << "Unrecognised labelinfo attribute: '" << Name << "'" << std::endl;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
void MusicBrainz5::CLabelInfo::ParseElement(const XMLNode& Node)
Packit 853e2d
{
Packit 853e2d
	std::string NodeName=Node.getName();
Packit 853e2d
Packit 853e2d
	if ("catalog-number"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_CatalogNumber);
Packit 853e2d
	}
Packit 853e2d
	else if ("label"==NodeName)
Packit 853e2d
	{
Packit 853e2d
		ProcessItem(Node,m_d->m_Label);
Packit 853e2d
	}
Packit 853e2d
	else
Packit 853e2d
	{
Packit 853e2d
		std::cerr << "Unrecognised label info element: '" << NodeName << "'" << std::endl;
Packit 853e2d
	}
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CLabelInfo::GetElementName()
Packit 853e2d
{
Packit 853e2d
	return "label-info";
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::string MusicBrainz5::CLabelInfo::CatalogNumber() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_CatalogNumber;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
MusicBrainz5::CLabel *MusicBrainz5::CLabelInfo::Label() const
Packit 853e2d
{
Packit 853e2d
	return m_d->m_Label;
Packit 853e2d
}
Packit 853e2d
Packit 853e2d
std::ostream& MusicBrainz5::CLabelInfo::Serialise(std::ostream& os) const
Packit 853e2d
{
Packit 853e2d
	os << "Label info:" << std::endl;
Packit 853e2d
Packit 853e2d
	CEntity::Serialise(os);
Packit 853e2d
Packit 853e2d
	os << "\tCatalog number: " << CatalogNumber() << std::endl;
Packit 853e2d
Packit 853e2d
	if (Label())
Packit 853e2d
		os << *Label() << std::endl;
Packit 853e2d
Packit 853e2d
	return os;
Packit 853e2d
}
Packit 853e2d