Override Object.hashCode() and Object.equals().
[demoscenemusic.git] / src / main / java / net / pterodactylus / demoscenemusic / data / Artist.java
index 3b26155..563a3bc 100644 (file)
 
 package net.pterodactylus.demoscenemusic.data;
 
+import java.util.Collection;
+
 /**
- * TODO
+ * Data interface for artists.
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-public class Artist extends AbstractBase {
+public interface Artist extends Base {
+
+       /**
+        * Returns the name of this artist.
+        *
+        * @return The name of this artist
+        */
+       public String getName();
+
+       /**
+        * Sets the name of this artist.
+        *
+        * @param name
+        *            The new name of this artist
+        * @return This artist
+        */
+       public Artist setName(String name);
 
-       private String name;
+       /**
+        * Returns the groups this artist belongs to.
+        *
+        * @return The groups this artist belongs to
+        */
+       public Collection<Group> getGroups();
 
-       public Artist(String id) {
-               super(id);
-       }
+       /**
+        * Sets the groups this artist belongs to.
+        *
+        * @param groups
+        *            The groups this artist belongs to
+        * @return This artist
+        */
+       public Artist setGroups(Collection<Group> groups);
 
-       public String name() {
-               return name;
-       }
+       /**
+        * Returns the tracks created by this artist.
+        *
+        * @return The tracks created by this artist
+        */
+       public Collection<Track> getTracks();
 
-       public Artist name(String name) {
-               this.name = name;
-               return this;
-       }
+       /**
+        * Sets the tracks created by this artist.
+        *
+        * @param tracks
+        *            The tracks created by this artist
+        * @return This artist
+        */
+       public Artist setTracks(Collection<Track> tracks);
 
 }