libmusicbrainz3  3.0.2
label.h
Go to the documentation of this file.
00001 /*
00002  * MusicBrainz -- The Internet music metadatabase
00003  *
00004  * Copyright (C) 2006 Lukas Lalinsky
00005  *      
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  * 
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  * 
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019  *
00020  * $Id: label.h 9218 2007-06-25 20:11:09Z luks $
00021  */
00022  
00023 #ifndef __MUSICBRAINZ3_LABEL_H__
00024 #define __MUSICBRAINZ3_LABEL_H__
00025 
00026 #include <string>
00027 #include <vector>
00028 #include <musicbrainz3/musicbrainz.h>
00029 #include <musicbrainz3/entity.h>
00030 #include <musicbrainz3/lists.h>
00031 
00032 namespace MusicBrainz
00033 {
00034 
00038         class MB_API Label : public Entity
00039         {
00040         public:
00041         
00042                 static const std::string TYPE_PERSON; 
00043                 static const std::string TYPE_GROUP;
00044         
00053                 Label(const std::string &id = "", const std::string &type = "",
00054                           const std::string &name = "", const std::string &sortName = "");
00055                 
00059                 virtual ~Label();
00060                 
00066                 std::string getType() const;
00067                 
00073                 void setType(const std::string &type);
00074                 
00080                 std::string getName() const;
00081                 
00087                 void setName(const std::string &name);
00088 
00098                 std::string getSortName() const;
00099                 
00107                 void setSortName(const std::string &sortName);
00108 
00124                 std::string getDisambiguation() const;
00125                 
00133                 void setDisambiguation(const std::string &disambiguation);
00134                 
00146                 std::string getUniqueName() const;
00147                 
00162                 std::string getBeginDate() const;
00163                 
00171                 void setBeginDate(const std::string &dateStr);
00172                 
00184                 std::string getEndDate() const;
00185                 
00193                 void setEndDate(const std::string &dateStr);
00194                 
00204                 ReleaseList &getReleases();
00205                 
00215                 int getNumReleases() const;
00216                 
00226                 Release *getRelease(int index);
00227                 
00233                 void addRelease(Release *release);
00234 
00247                 int getReleasesOffset() const;
00248                 
00256                 void setReleasesOffset(const int offset);
00257                 
00269                 int getReleasesCount() const;
00270                 
00278                 void setReleasesCount(const int count);
00279                 
00285                 LabelAliasList &getAliases();
00286                 
00296                 int getNumAliases() const;
00297                 
00307                 LabelAlias *getAlias(int index);
00308                 
00314                 void addAlias(LabelAlias *alias);
00315                 
00316         private:
00317 
00318                 class LabelPrivate;
00319                 LabelPrivate *d;
00320         };
00321         
00322 }
00323 
00324 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines