libmusicbrainz3  3.0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
label.h
Go to the documentation of this file.
1 /*
2  * MusicBrainz -- The Internet music metadatabase
3  *
4  * Copyright (C) 2006 Lukas Lalinsky
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  * $Id: label.h 9218 2007-06-25 20:11:09Z luks $
21  */
22 
23 #ifndef __MUSICBRAINZ3_LABEL_H__
24 #define __MUSICBRAINZ3_LABEL_H__
25 
26 #include <string>
27 #include <vector>
29 #include <musicbrainz3/entity.h>
30 #include <musicbrainz3/lists.h>
31 
32 namespace MusicBrainz
33 {
34 
38  class MB_API Label : public Entity
39  {
40  public:
41 
42  static const std::string TYPE_PERSON;
43  static const std::string TYPE_GROUP;
44 
53  Label(const std::string &id = "", const std::string &type = "",
54  const std::string &name = "", const std::string &sortName = "");
55 
59  virtual ~Label();
60 
66  std::string getType() const;
67 
73  void setType(const std::string &type);
74 
80  std::string getName() const;
81 
87  void setName(const std::string &name);
88 
98  std::string getSortName() const;
99 
107  void setSortName(const std::string &sortName);
108 
124  std::string getDisambiguation() const;
125 
133  void setDisambiguation(const std::string &disambiguation);
134 
146  std::string getUniqueName() const;
147 
162  std::string getBeginDate() const;
163 
171  void setBeginDate(const std::string &dateStr);
172 
184  std::string getEndDate() const;
185 
193  void setEndDate(const std::string &dateStr);
194 
204  ReleaseList &getReleases();
205 
215  int getNumReleases() const;
216 
226  Release *getRelease(int index);
227 
233  void addRelease(Release *release);
234 
247  int getReleasesOffset() const;
248 
256  void setReleasesOffset(const int offset);
257 
269  int getReleasesCount() const;
270 
278  void setReleasesCount(const int count);
279 
285  LabelAliasList &getAliases();
286 
296  int getNumAliases() const;
297 
307  LabelAlias *getAlias(int index);
308 
314  void addAlias(LabelAlias *alias);
315 
316  private:
317 
318  class LabelPrivate;
319  LabelPrivate *d;
320  };
321 
322 }
323 
324 #endif
static const std::string TYPE_GROUP
Definition: label.h:43
std::vector< LabelAlias * > LabelAliasList
A vector of pointers to LabelAlias objects.
Definition: lists.h:76
A first-level MusicBrainz class.
Definition: entity.h:56
static const std::string TYPE_PERSON
Definition: label.h:42
Represents a label alias.
Definition: labelalias.h:38
std::vector< Release * > ReleaseList
A vector of pointers to Release objects.
Definition: lists.h:58
Represents a record label.
Definition: label.h:38
#define MB_API
Definition: defines.h:40
Represents a Release.
Definition: release.h:47